commit b10b68aa3b0d0296061783066f0bc3386b858ded
| author | 斟酌 鵬兄 <tgckpg@gmail.com> |
| date | 2022-08-11T14:48:00Z |
| subject | Added 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