Então, para enviar uma solicitação POST para o gists (github), você pode fazer algo parecido com o visto no link
curl --user "user" -X POST --data '{"description":"Created via API","public":"true","files":{"file1.txt":{"content":"Demo"}}' https://api.github.com/gists
Mas, no exemplo acima, o nome do arquivo e o conteúdo do arquivo são codificados, que é a parte .. file1.txt":{"content":"Demo"}
..
Estou substituindo a parte acima pela minha variável $file":{"content":"$content"}
, mas inicializando a variável, a solicitação do json deve estar entre aspas duplas, o que fiz como
curl --user "user" -X POST --data "{\"description\":\"Created via API\",\"public\":\"true\",\"files\":{\"$file\":{\"content\":\"$content\"}}' https://api.github.com/gists
Mas isso não funciona, eu recebo o erro json.
{
"message": "Problems parsing JSON",
"documentation_url": "https://developer.github.com/v3/gists/#create-a-gist"
}
Mesmo se eu substituí todas as aspas duplas com \'
aspas simples.
Alguém sabe como incluir uma variável dentro desta solicitação do json?
btw: Eu usei todos os cabeçalhos, como
-H "Content-Type: application/json; charset=UTF-8"
e muitas combinações para validar o pedido, mas sem sucesso
UPDATE.
É assim que todo o conteúdo se parece.
function gist_controller(){
content=$(cat $1)
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
read -p "enter your password - " pass
public="false"
gist_content=$(cat $1)
curl --user "samserayo" -H "Content-Type: application/json; charset=UTF-8" -X POST -d "{ 'description': 'Created via API', 'public': 'true', 'files':{ ' '$1 ':{ 'content': '$gist_content'}}" https://api.github.com/gists
}