summaryrefslogtreecommitdiffhomepage
path: root/scripts/gist
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gist')
-rwxr-xr-xscripts/gist24
1 files changed, 21 insertions, 3 deletions
diff --git a/scripts/gist b/scripts/gist
index b82fa0a..444b9a6 100755
--- a/scripts/gist
+++ b/scripts/gist
@@ -62,6 +62,12 @@ config=~/.config/gistrc
62set -eo pipefail 62set -eo pipefail
63[ "$TRACE" ] && set -x 63[ "$TRACE" ] && set -x
64 64
65## Grabs an element from a a json string and then echoes it to stdout
66AccessJsonElement() {
67 PYTHONIOENCODING=utf-8 python -c "from __future__ import print_function; import sys, json; raw = json.load(sys.stdin); $1"
68 return "$?"
69}
70
65_auth() { 71_auth() {
66 echo 'Hi fellow! To access your gists, I need your Github username and a personal token with scope which allows "gist"!' 72 echo 'Hi fellow! To access your gists, I need your Github username and a personal token with scope which allows "gist"!'
67 read -p "Github username: " user < /dev/tty 73 read -p "Github username: " user < /dev/tty
@@ -146,12 +152,24 @@ _update() {
146 if [[ $auto_sync != "false" ]]; then (_sync_repos $1 > /dev/null 2>&1 &); fi 152 if [[ $auto_sync != "false" ]]; then (_sync_repos $1 > /dev/null 2>&1 &); fi
147} 153}
148 154
155# equal to: jq '.[] | "\(.html_url) \([.files[] | .raw_url]) \(.files | keys | length) \(.comments) \(.description)"'
156handle_gists() {
157 echo '
158for gist in raw:
159 print(gist["html_url"], end=" ")
160 print([file["raw_url"] for file in gist["files"].values()], end=" ")
161 print(len(gist["files"]), end=" ")
162 print(gist["comments"], end=" ")
163 print(gist["description"])
164 '
165}
166
149# TODO check if a user create a very first gist 167# TODO check if a user create a very first gist
150_parse_response() { 168_parse_response() {
151 jq '.[] | "\(.html_url) \([.files[] | .raw_url]) \(.files | keys | length) \(.comments) \(.description)"' \ 169 AccessJsonElement "$(handle_gists)" \
152 | tac \ 170 | tac | sed 's/, /,/g'\
153 | while read link file_url_array file_num comment_num description; do 171 | while read link file_url_array file_num comment_num description; do
154 local blob_code=$(echo $file_url_array | jq -r '.[]' | sed -E 's#.*raw/(.*)/.*#\1#' | sort | cut -c -7 | paste -sd '-') 172 local blob_code=$(echo $file_url_array | tr ',' '\n' | sed -E 's#.*raw/(.*)/.*#\1#' | sort | cut -c -7 | paste -sd '-')
155 echo $link $blob_code $file_num $comment_num $description | tr -d '"' 173 echo $link $blob_code $file_num $comment_num $description | tr -d '"'
156 done 174 done
157} 175}