#!/bin/bash | |
GITHUB_USERNAME=rubo77 | |
if [ "$1" == "" ]; then | |
echo 'usage: gistfile-post.sh filename [gistname]' | |
exit 0 | |
fi | |
# 0. file name for the Gist | |
if [ "$2" == "" ]; then | |
FNAME="$1" | |
else | |
FNAME="$2" | |
fi | |
# 1. Somehow sanitize the file content | |
# Remove \r (from Windows end-of-lines), | |
# Replace tabs by \t | |
# Replace " by \" | |
# Replace EOL by \n | |
CONTENT=$(sed -e 's/\r//' -e's/\t/\\t/g' -e 's/"/\\"/g' "${FNAME}" | awk '{ printf($0 "\\n") }') | |
# 2. Build the JSON request | |
read -r -d '' DESC <<EOF | |
{ | |
"description": "some description", | |
"public": true, | |
"files": { | |
"${FNAME}": { | |
"content": "${CONTENT}" | |
} | |
} | |
} | |
EOF | |
# 3. Use curl to send a POST request | |
# ANONYMOUS GIST : | |
# curl -X POST -d "${DESC}" "https://api.github.com/gists" | |
# REGISTERED USER | |
curl -u "${GITHUB_USERNAME}" -X POST -d "${DESC}" "https://api.github.com/gists" |
This comment has been minimized.
This comment has been minimized.
Is |
This comment has been minimized.
This comment has been minimized.
Yes, That should be |
This comment has been minimized.
This comment has been minimized.
I needed to edit an existing gist to upload a binary file, which cannot be done via the UI. To edit a gist, add a parameter $GIST_ID, replace POST with PATCH in curl, and after /gists add /$GIST_ID. Then I tried the So I followed the workaround at the end, cloning the gist repo and adding them manually locally, then pushing them. |
This comment has been minimized.
This comment has been minimized.
thx, I corrected that |
This comment has been minimized.
This comment has been minimized.
This was original asked here: https://stackoverflow.com/questions/26484337/upload-a-file-to-a-gist-with-bash and we continued the development from there. |
This comment has been minimized.
This code deserves a repo: https://github.com/ceremcem/create-gist