penguin/utils

my env utils

commit b10b68aa3b0d0296061783066f0bc3386b858ded

author斟酌 鵬兄 <tgckpg@gmail.com>
date2022-08-11T14:48:00Z
subjectAdded r2ensource & r2dissource
commit b10b68aa3b0d0296061783066f0bc3386b858ded
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2022-08-11T14:48:00Z

    Added r2ensource & r2dissource
---
 bash/bashrc/package.sh        | 25 ----------------
 bash/bashrc/rbashrc           | 70 +++++++++++++++++++++++++++++++++++++++----
 bash/bashrc/sources/11_vs_env |  4 ---
 3 files changed, 64 insertions(+), 35 deletions(-)

diff --git a/bash/bashrc/package.sh b/bash/bashrc/package.sh
deleted file mode 100644
index f410059..0000000
--- a/bash/bashrc/package.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-IS_CYGWIN=false
-
-case $( uname -a | awk '{ print $1 }' ) in
-    Darwin) # although this is deprecated, Mac still use it
-        PERM="+111"
-        ;;
-    # Linux) ;& // Fall through does not support in OS X
-    CYGWIN*)
-        PERM="/111"
-        IS_CYGWIN=true
-        ;;
-    *)
-        PERM="/111"
-        ;;
-esac
-
-function __func_head() {
-    echo "Usage:" ${FUNCNAME[1]} $1
-}
-
-function __func_help() {
-#   echo "Usage:" ${FUNCNAME[1]} $1
-    echo "       ${FUNCNAME[1]} $1"
-}
diff --git a/bash/bashrc/rbashrc b/bash/bashrc/rbashrc
index 10c0bca..32398be 100644
--- a/bash/bashrc/rbashrc
+++ b/bash/bashrc/rbashrc
@@ -78,6 +78,9 @@ if ! shopt -oq posix; then
   fi
 fi
 
+function __func_head() { echo "Usage:" ${FUNCNAME[1]} $1; }
+function __func_help() { echo "       ${FUNCNAME[1]} $1"; }
+
 function __download {
     which curl 2>&1 > /dev/null
     if [ $? -eq 0 ]; then
@@ -109,7 +112,7 @@ function rbash_cache {
 # User specific aliases and functions
 function rbash_load {
     local f path
-    echo "    $1"
+    echo "Load: $1"
     f=`rbash_cache "$RBASH_REMOTE/$RBASH_REPO/raw/branch/master/$RBASH_PATH/$1"`
     source "$f"
 }
@@ -169,10 +172,14 @@ function _require_jq {
     fi
 }
 
+declare -A _RBASH_DICT
 function rbash-list {
     _require_jq || return 1
     echo "Available sources:"
+	local _k
     for i in `__download "$RBASH_REMOTE/api/v1/repos/$RBASH_REPO/contents/$RBASH_PATH/sources/" | jq -r '.[].name'`; do
+		_k=`echo -n $i | grep -o "^\d\+"`
+		_RBASH_DICT["s$_k"]=$i
         grep -q -e "^rbash_load \"sources/$i\"\$" "$RBASH_CONFIG"
         if [ $? -eq 0 ]; then
             echo "  * $i"
@@ -182,9 +189,63 @@ function rbash-list {
     done
 }
 
-function rbash-enable {
-    _require_jq || return 1
+function r2ensource {
+	rbash-list
+
+	local _id _sel _tmp _en
+	_en=()
+	read -p "Enter the script id XX, delimited by space: " _ids
+	for _id in $_ids; do
+		_sel=${_RBASH_DICT["s$_id"]}
+		if [ -z "$_sel" ]; then
+			echo "No such id $_id"
+			return 1
+		fi
+
+		grep -q -e "^rbash_load \"sources/$_sel\"\$" "$RBASH_CONFIG"
+		if [ $? -eq 0 ]; then
+			echo "\"$_sel\" is already enabled."
+			continue
+		fi
+
+		_en+=("$_sel")
+	done
+
+	_tmp=$( mktemp )
+	cp "$RBASH_CONFIG" "$_tmp"
+	for _id in "${_en[@]}"; do
+		echo "rbash_load \"sources/$_id\"" >> $_tmp
+		echo "Enabling $_id"
+	done
+	sort $_tmp > "$RBASH_CONFIG"
+	rm $_tmp
+}
 
+function r2dissource {
+	echo "Currently enabled sources:"
+	grep -e "^rbash_load \"sources/" "$RBASH_CONFIG" | cut -c 21- | tr -d '"' | sed "s/^/    $1/g"
+
+	local _id _dis _opts
+	_dis=()
+	read -p "Enter the script id XX, delimited by space: " _ids
+	for _id in $_ids; do
+		_dis+=("$( grep -e "^rbash_load \"sources/${_id}_" "$RBASH_CONFIG" )")
+		if [ $? -ne 0 ]; then
+			echo "No such id: $_id"
+			return 1
+		fi
+	done
+
+	_opts=""
+	for _id in "${_dis[@]}"; do
+		_opts="-e \"^$( echo -n $_id | sed 's/"/\\"/g' )$\" $_opts"
+		echo "Disabling "$( echo -n $_id | sed 's/rbash_load \"sources\/\([^"]\+\)"/\1/g' )
+	done
+
+	_dis=$( mktemp )
+	sh -c "grep -v $_opts \"$RBASH_CONFIG\"" > $_dis
+	sort $_dis > $RBASH_CONFIG
+	rm $_dis
 }
 
 export PS1='This is <MACHINE_NAME>\e[1;3<COLOR_CODE>m<MACHINE_COLORED_NAME>\e[0m: \w\n\$ '
@@ -193,11 +254,8 @@ export EDITOR=vim
 # Create default source config
 if [ ! -f "$RBASH_CONFIG" ]; then
     cat <<___DEFAULT___ > "$RBASH_CONFIG"
-echo "Source:"
-rbash_load "package.sh"
 rbash_load "sources/10_aliases"
 rbash_load "sources/12_shortcuts"
-rbash_load "sources/15_gpg-agent"
 rbash_load "sources/20_fast-greps"
 rbash_load "sources/40_go-command"
 rbash_load "sources/41_pivot-command"
diff --git a/bash/bashrc/sources/11_vs_env b/bash/bashrc/sources/11_vs_env
index 5963f95..7aea5eb 100755
--- a/bash/bashrc/sources/11_vs_env
+++ b/bash/bashrc/sources/11_vs_env
@@ -1,9 +1,5 @@
 #!/bin/bash
 
-if ! $IS_CYGWIN; then
-	return
-fi
-
 if [ -n "$FrameworkVersion" ]; then
 	alias vsshell='echo "FrameworkVersion $FrameworkVersion"'
 	return