Неопределенная строка в кавычках в команде Capistrano curl - PullRequest
0 голосов
/ 30 августа 2018

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

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

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

Редактировать: я получил эту ошибку, но теперь вернул "Malformed JSON in body body" из Cloudflare.

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

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

1 Ответ

0 голосов
/ 30 августа 2018

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

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

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

...