Skip to content

Instantly share code, notes, and snippets.

@rubo77
Forked from s-leroux/pgist.sh
Last active August 30, 2020 09:41
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save rubo77/3b8b15f4df5b5287a24f87523c41e4ce to your computer and use it in GitHub Desktop.
Save rubo77/3b8b15f4df5b5287a24f87523c41e4ce to your computer and use it in GitHub Desktop.
A utility to create a gists from command line - for support, please check the repo https://github.com/ceremcem/create-gist
#!/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"
@rubo77
Copy link
Author

rubo77 commented Aug 24, 2019

Is elif on line 13 an error? My bash complains but it works when changed to else

Yes, That should be else.

thx, I corrected that

@rubo77
Copy link
Author

rubo77 commented Aug 24, 2019

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment