Незавершенная строка в кавычках в команде Capistrano curl

Я пробовал практически все комбинации одинарных кавычек, двойных кавычек и обратных косых черт, какие только мог придумать. Если бы кто-нибудь мог указать, что я делаю неправильно, я был бы очень признателен.

run_locally do
    execute "\\curl -X POST \"https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache\" \
    -H \"X-Auth-Email: [email protected]\" \
    -H \"X-Auth-Key: #{fetch(:cloudflare_api)}\" \
    -H \"Content-Type: application/json\" \
    --data {\"purge_everything\":true}\""
end

Мой сценарий капистрано умирает, когда попадает в него каждый раз. Я чувствую, что это последняя строчка, но не знаю почему.

Обновлено: я преодолел эту ошибку, но теперь получаю «Неправильный JSON в теле запроса» от Cloudflare.

run_locally do
            execute "\\curl -X POST \"https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache\" \
    -H \"X-Auth-Email: [email protected]\" \
    -H \"X-Auth-Key: #{fetch(:cloudflare_api)}\" \
    -H \"Content-Type: application/json\" \
    --data \"{\"purge_everything\":true}\" "
end

Так что почему-то ему не нравится мой раздел --data.

Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
0
0
233
1

Ответы 1

Я не могу проверить это непосредственно для вас, но вы можете использовать другие строковые конструкции, чтобы сделать это более ясным способом, который, надеюсь, поможет вам осветить проблему.

run_locally do
  execute %{curl -X POST "https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache" \
    -H "X-Auth-Email: [email protected]" \
    -H "X-Auth-Key: #{fetch(:cloudflare_api)}" \
    -H "Content-Type: application/json" \
    --data '{"purge_everything":true}'}
  end

Вероятно, причиной проблемы являются вложенные двойные кавычки в вашем JSON.

Другие вопросы по теме