aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xscripts/gist18
1 files changed, 10 insertions, 8 deletions
diff --git a/scripts/gist b/scripts/gist
index fe38e38..a939a47 100755
--- a/scripts/gist
+++ b/scripts/gist
@@ -56,7 +56,6 @@
56# TODO completion 56# TODO completion
57 57
58# Shell configuration 58# Shell configuration
59set -eo pipefail
60[ "$TRACE" ] && set -x 59[ "$TRACE" ] && set -x
61 60
62GITHUB_API=https://api.github.com 61GITHUB_API=https://api.github.com
@@ -203,7 +202,7 @@ _show_list() {
203# parse JSON from STDIN with string of commands 202# parse JSON from STDIN with string of commands
204AccessJsonElement() { 203AccessJsonElement() {
205 PYTHONIOENCODING=utf-8 \ 204 PYTHONIOENCODING=utf-8 \
206 python -c "from __future__ import print_function; import sys, json; raw = json.load(sys.stdin); $1" 205 python -c "from __future__ import print_function; import sys, json; raw = json.load(sys.stdin); $1" 2> /dev/null
207 return "$?" 206 return "$?"
208} 207}
209 208
@@ -247,7 +246,7 @@ _update() {
247 fi 246 fi
248 247
249 response=$(curl -H "$auth_header" $GITHUB_API/$route) 248 response=$(curl -H "$auth_header" $GITHUB_API/$route)
250 false && echo Fail to update gists && return 1 249 false && echo Failed to update gists && return 1
251 sed -i "$filter" $INDEX 250 sed -i "$filter" $INDEX
252 echo $response | _parse_response >> $INDEX 251 echo $response | _parse_response >> $INDEX
253 _show_list $mark 252 _show_list $mark
@@ -393,12 +392,12 @@ _new_file() {
393} 392}
394 393
395# create a new gist with files 394# create a new gist with files
396# FIXME catch status code from curl if it fails
397_create_gist() { 395_create_gist() {
398 _set_gist "$@" || return 1 396 _set_gist "$@" || return 1
399 [[ -z "$files" ]] && files=$(_new_file $filename) 397 [[ -z "$files" ]] && files=$(_new_file $filename)
400 [[ -z "$description" ]] && read -p 'Type description: ' description < /dev/tty 398 [[ -z "$description" ]] && read -p 'Type description: ' description < /dev/tty
401 399
400 index=$(( $(sed '/^s/ d' $INDEX | wc -l) +1 ))
402 echo 'Creating a new gist' 401 echo 'Creating a new gist'
403 for file in $files; do 402 for file in $files; do
404 echo "\"$(basename $file)\": {\"content\": \"$(sed '$ !s/$/\\n/' $file)\"}," 403 echo "\"$(basename $file)\": {\"content\": \"$(sed '$ !s/$/\\n/' $file)\"},"
@@ -406,11 +405,14 @@ _create_gist() {
406 | echo "{ \"public\": $public, \"files\": $(cat -), \"description\": \"$description\"}" \ 405 | echo "{ \"public\": $public, \"files\": $(cat -), \"description\": \"$description\"}" \
407 | curl -s -H "$auth_header" --data @- $GITHUB_API/gists \ 406 | curl -s -H "$auth_header" --data @- $GITHUB_API/gists \
408 | sed '1 s/^/[/; $ s/$/]/' \ 407 | sed '1 s/^/[/; $ s/$/]/' \
409 | _parse_response $(( $(sed '/^s/ d' $INDEX | wc -l) +1 )) >> $INDEX \ 408 | _parse_response $index >> $INDEX
410 && echo -e '\nGist created' \
411 || echo 'Fail to create gist'
412 409
413 _show_list | tail -1 410 if [[ "$?" -ne 0 ]]; then
411 echo 'Gist is created'
412 _show_list | tail -1
413 else
414 echo 'Failed to create gist'
415 fi
414} 416}
415 417
416# update description of a gist 418# update description of a gist