aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xgist39
1 files changed, 22 insertions, 17 deletions
diff --git a/gist b/gist
index 31ff937..e883087 100755
--- a/gist
+++ b/gist
@@ -247,26 +247,29 @@ _color_description_title() {
247} 247}
248 248
249# Return git status of a given repo 249# Return git status of a given repo
250# $1 for repo path, $2 for blob_code from last fetch
250_check_repo_status() { 251_check_repo_status() {
251 if [[ ! -d $1 ]]; then 252 if [[ $2 == NONE ]]; then
252 if [[ $auto_sync != false ]]; then 253 return 0
253 echo "\e[32m[cloning]\e[0m"; 254 elif [[ ! -d $1 ]]; then
254 else 255 if [[ $auto_sync != false ]]; then
255 echo "\e[32m[Not cloned yet]\e[0m"; 256 echo "\e[32m[cloning]\e[0m";
256 fi
257 else 257 else
258 cd "$1" || exit 1 258 echo "\e[32m[Not cloned yet]\e[0m";
259 # git status is not clean or working on non-master branch
260 if [[ -n $(git status --short) || $(cat .git/HEAD) != 'ref: refs/heads/master' ]] &>/dev/null; then
261 echo "\e[36m[working]\e[0m"
262 else
263 # files contents are not the same with the last time called GIST API, so warn user to call 'gist fetch'
264 [[ $(_blob_code "$1") != "$2" ]] 2>/dev/null && local status="\e[31m[outdated]\e[0m"
265 # current HEAD is newer than remote, warn user to call 'git push'
266 [[ -n $(git cherry) ]] 2>/dev/null && local status="\e[31m[ahead]\e[0m"
267 echo "$status"
268 fi
269 fi 259 fi
260 else
261 cd "$1" || exit 1
262 # git status is not clean or working on non-master branch
263 if [[ -n $(git status --short) || $(cat .git/HEAD) != 'ref: refs/heads/master' ]] &>/dev/null; then
264 echo "\e[36m[working]\e[0m"
265 else
266 # files contents are not the same with the last time called GIST API, so warn user to call 'gist fetch'
267 [[ $(_blob_code "$1") != "$2" ]] 2>/dev/null && local status="\e[31m[outdated]\e[0m"
268 # current HEAD is newer than remote, warn user to call 'git push'
269 [[ -n $(git cherry) ]] 2>/dev/null && local status="\e[31m[ahead]\e[0m"
270 echo "$status"
271 fi
272 fi
270} 273}
271 274
272# check given index is necessary to handle 275# check given index is necessary to handle
@@ -399,9 +402,11 @@ _fetch_gists() {
399 if [[ $mark == s ]]; then 402 if [[ $mark == s ]]; then
400 route='gists/starred' 403 route='gists/starred'
401 prefix=s 404 prefix=s
405 extra="s0 https://gist.github.com/b0d2e7e67aa50298fdf8111ae7466b56 #bash,#gist NONE README.md@Markdown,gist@Shell 2 30 typebrook 2019-12-26T06:49:40Z 2020-05-15T13:00:31Z [bash-gist] A bash script for gist management"
402 fi 406 fi
403 407
404 result=$(http_method GET $GITHUB_API/$route?per_page=100 | prefix=$prefix _parse_response) 408 result=$(http_method GET $GITHUB_API/$route?per_page=100 | prefix=$prefix _parse_response)
409 result=$(printf "${extra:+$extra\n}$result")
405 [[ -z $result ]] && echo 'Not a single valid gist' && return 0 410 [[ -z $result ]] && echo 'Not a single valid gist' && return 0
406 411
407 sed -i'' -Ee "/^$mark/ d" $INDEX && echo "$result" >> $INDEX 412 sed -i'' -Ee "/^$mark/ d" $INDEX && echo "$result" >> $INDEX