Updated bash configs

This commit is contained in:
Gregory Eremin
2020-09-12 09:58:04 +02:00
parent a3df3a425f
commit 1c2c69c6b2
16 changed files with 162 additions and 166 deletions
+35
View File
@@ -0,0 +1,35 @@
# Go version manager
# Step 1: Download & Extract
# Step 2: mv ~/Downloads/go ~/go/versions/x.y.z
# GOROOT=$HOME/go/lang
# GOPATH=$HOME/go/path
platform=linux-amd64
function gover {
[[ "$1" == "" ]] && go version && return
# TODO: Check it exists
ln -sfn $HOME/go/versions/$1 $HOME/go/lang
}
function _gover { __bash_directory_complete $HOME/go/versions; }
complete -F _gover gover
function godl {
wget https://dl.google.com/go/go$1.$platform.tar.gz -O /tmp/go$1.$platform.tar.gz
mkdir /tmp/go$1
tar -xzf /tmp/go$1.$platform.tar.gz -C /tmp/go$1
mv /tmp/go$1/go $HOME/go/versions/$1
rmdir /tmp/go$1
}
function __gover_download_list {
curl -s https://golang.org/dl/ \
| grep "/dl/go" \
| cut -d '"' -f6 \
| cut -d/ -f3 \
| sed -n -e 's/^go\([0-9]\{1,\}\.[0-9]\{1,\}\(\.[0-9]\{1,\}\)\?\).*/\1/p' \
| sort -Vur
}
function _godl {
__bash_complete "$(__gover_download_list $1)"
}
complete -F _godl godl
+68
View File
@@ -0,0 +1,68 @@
#
# MySQL CLI manager
#
# Requirements: mycli, KDE Wallet, jq
export MYCLI_HISTFILE=$HOME/.config/mycli/history
# XXX: Extend this function with custom definitions!
# Override the function (and completions) in dotfiles/secrets/myc.bash
function myc {
case $1 in
e | example )
__myc_connect test example
;;
* )
echo "Usage: myc [serverid]"
;;
esac
}
# NOTE: Completions are based on function definition
complete -W "$(type myc | grep "|" | sed "s/)//" | sed "s/^[ \t]*//" | sed "s/ | / /" | tr '\n' ' ')" myc
function __myc_connect {
envname=$1
dbname=$2
__window_title "MySQL: $dbname @ $envname"
__myc_banner $envname $dbname
creds=$(__myc_creds "$envname-$dbname")
[[ -z "$creds" ]] && echo "Missing credentials!" && return 1
host=$(echo $creds | jq -r .host)
user=$(echo $creds | jq -r .user)
pass=$(echo $creds | jq -r .pass)
defaultdb=$(echo $creds | jq -r .db)
mycli -h $host -u $user -p $pass $defaultdb
}
function __myc_creds {
wallet=kdewallet
folder=MySQL
entry=$1
kwallet-query -f $folder -r $entry $wallet | grep -v "Failed to read entry"
}
function __myc_banner {
envname=$1
db=$2
echo -n "Connecting to ${_BOLD}${db}${_RESET} @ ${_BOLD}"
case $envname in
testing )
echo -n $_YELLOW
;;
production )
echo -n $_RED
;;
localhost )
echo -n $_BLUE
;;
esac
echo "${envname}${_RESET}"
}