aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authortypebrook <typebrook@gmail.com>2020-03-19 13:48:49 +0800
committertypebrook <typebrook@gmail.com>2020-03-19 17:42:17 +0800
commitf1ad5ae584ec7458f56927b0aaba5cf8c833cf64 (patch)
tree2445d43b7701074978f4eb0ce34d7e96aea18ff2
parent177ea6791f73c204932fbd4d276a5b63e2aab95f (diff)
Add new subcommand 'gist pin'
-rwxr-xr-xgist28
1 files changed, 26 insertions, 2 deletions
diff --git a/gist b/gist
index 9363511..5f64513 100755
--- a/gist
+++ b/gist
@@ -39,6 +39,7 @@
39# Since now a gist is a local cloned repo 39# Since now a gist is a local cloned repo
40# It is your business to do git commit and git push 40# It is your business to do git commit and git push
41 41
42# TODO color pinned tags
42# TODO README/helper message about tag and default action ${SHELL:-bash} 43# TODO README/helper message about tag and default action ${SHELL:-bash}
43# TODO codebase statistics, like C++ or something 44# TODO codebase statistics, like C++ or something
44# TODO migrate to gh-page, with install.sh and check_md5 in README 45# TODO migrate to gh-page, with install.sh and check_md5 in README
@@ -678,6 +679,26 @@ _show_tags() {
678 _hashtags "$description" | tr ' ' '\n' | sed -e '/^$/d' 679 _hashtags "$description" | tr ' ' '\n' | sed -e '/^$/d'
679 done < $INDEX \ 680 done < $INDEX \
680 | sort -u 681 | sort -u
682
683 tags=( $pin )
684 echo
685 echo Pinned tags: ${tags[@]/#/#}
686}
687
688# pin/unpin tags
689_pin_tags() {
690 local new_pinned=( $(echo $pin $* | tr ' ' '\n' | sort | uniq -u | xargs) )
691 for tag in ${new_pinned[@]}; do
692 if _gist_id $tag &> /dev/null; then
693 echo Invalid tag: $tag
694 return 1
695 fi
696 done || exit 1
697
698 hint=false _tag_gist ${new_pinned[@]}
699 echo > /dev/tty
700 echo Pinned tags: ${new_pinned[@]/#/#} > /dev/tty
701 sed -i'' -e "/^pin=/ d" "$CONFIG" && echo pin=\'"${new_pinned[@]}"\' >> "$CONFIG"
681} 702}
682 703
683_apply_config "$@" || exit 1 704_apply_config "$@" || exit 1
@@ -718,14 +739,17 @@ case "$1" in
718 github | G) 739 github | G)
719 shift 740 shift
720 _import_to_github "$1" ;; 741 _import_to_github "$1" ;;
721 push | p) 742 push | P)
722 shift 743 shift
723 _push_to_remote "$1" ;; 744 _push_to_remote "$1" ;;
724 tag | t) 745 tag | t)
725 shift 746 shift
726 _tag_gist "$@" ;; 747 _tag_gist "$@" ;;
727 tags) 748 tags | tt)
728 _show_tags ;; 749 _show_tags ;;
750 pin | p)
751 shift
752 _pin_tags "$@" ;;
729 version) 753 version)
730 echo "Version $currentVersion" ;; 754 echo "Version $currentVersion" ;;
731 update) 755 update)