feat(zsh): add ssh-menu and run shmft
This commit is contained in:
parent
a9fe95254a
commit
d7f8b52c98
|
@ -1,9 +1,8 @@
|
||||||
alias s="ssh"
|
|
||||||
alias z="exec zsh"
|
alias z="exec zsh"
|
||||||
alias t="tmux a || tmux new-session -s $(whoami) -c ~"
|
alias t="tmux a || tmux new-session -s $(whoami) -c ~"
|
||||||
alias n=nvim_ve
|
alias n=nvim_ve
|
||||||
# alias vim=nvim_ve
|
# alias vim=nvim_ve
|
||||||
alias ssh-hosts="grep -P \"^Host ([^*]+)$\" $HOME/.ssh/config | sed 's/Host //'"
|
alias s="ssh-menu"
|
||||||
|
|
||||||
# navigation
|
# navigation
|
||||||
alias cdgit="cd $GGROOT"
|
alias cdgit="cd $GGROOT"
|
||||||
|
|
175
zsh/scripts.zsh
175
zsh/scripts.zsh
|
@ -1,125 +1,138 @@
|
||||||
|
|
||||||
function nvim_ve {
|
function nvim_ve {
|
||||||
if [[ -e "$VIRTUAL_ENV" && -f "$VIRTUAL_ENV/bin/activate" ]]; then
|
if [[ -e $VIRTUAL_ENV && -f "$VIRTUAL_ENV/bin/activate" ]]; then
|
||||||
source "$VIRTUAL_ENV/bin/activate"
|
source "$VIRTUAL_ENV/bin/activate"
|
||||||
command nvim $@
|
command nvim $@
|
||||||
deactivate
|
deactivate
|
||||||
else
|
else
|
||||||
command nvim $@
|
command nvim $@
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
alias nvim=nvim_ve
|
alias nvim=nvim_ve
|
||||||
|
|
||||||
function ffb {
|
function ffb {
|
||||||
if ! [[ -f package.json ]]; then
|
if ! [[ -f package.json ]]; then
|
||||||
echo "no package.json"
|
echo "no package.json"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -f yarn.lock ]]; then
|
if [[ -f yarn.lock ]]; then
|
||||||
PACKAGE_MANAGER=yarn
|
PACKAGE_MANAGER=yarn
|
||||||
else
|
else
|
||||||
PACKAGE_MANAGER=npm
|
PACKAGE_MANAGER=npm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n $(grep "react-scripts" package.json) ]]; then
|
if [[ -n $(grep "react-scripts" package.json) ]]; then
|
||||||
BROWSER=none FORCE_COLOR=true "$PACKAGE_MANAGER" start | cat
|
BROWSER=none FORCE_COLOR=true "$PACKAGE_MANAGER" start | cat
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function afm {
|
function afm {
|
||||||
RES=$(curl -s "https://$1/api/monitoring/requirements")
|
RES=$(curl -s "https://$1/api/monitoring/requirements")
|
||||||
COUNT=$(echo "$RES" | grep -c $2)
|
COUNT=$(echo "$RES" | grep -c $2)
|
||||||
if [[ $COUNT -ge 0 ]]; then
|
if [[ $COUNT -ge 0 ]]; then
|
||||||
VER=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).version')
|
VER=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).version')
|
||||||
# OP=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).requirement?[0][0]')
|
# OP=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).requirement?[0][0]')
|
||||||
# echo "$2""$(echo "$OP" | tr -d '"')""$(echo "$VER" | tr -d '"')"
|
# echo "$2""$(echo "$OP" | tr -d '"')""$(echo "$VER" | tr -d '"')"
|
||||||
echo "$2""==""$(echo "$VER" | tr -d '"')"
|
echo "${2}==$(echo "$VER" | tr -d '"')"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function nukepip {
|
function nukepip {
|
||||||
pip uninstall $(pip freeze) -y
|
pip uninstall $(pip freeze) -y
|
||||||
pip install -r $(pyenv root)/default-packages
|
pip install -r $(pyenv root)/default-packages
|
||||||
}
|
}
|
||||||
|
|
||||||
function pyinit {
|
function pyinit {
|
||||||
if [[ -f .python-version ]]; then
|
if [[ -f .python-version ]]; then
|
||||||
echo "found .python-version, stopping"
|
echo "found .python-version, stopping"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DIRNAME=$(basename "$PWD")
|
DIRNAME=$(basename "$PWD")
|
||||||
|
|
||||||
if [[ $(pyenv versions | grep -E "/${DIRNAME}$") ]]; then
|
if [[ $(pyenv versions | grep -E "/${DIRNAME}$") ]]; then
|
||||||
echo "found existing version with this name, setting..."
|
echo "found existing version with this name, setting..."
|
||||||
|
pyenv local "$DIRNAME"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $1 ]]; then
|
||||||
|
echo "no python version provided, defaulting to $(pyenv version-name)"
|
||||||
|
VERSION=$(pyenv version-name)
|
||||||
|
else
|
||||||
|
VERSION=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pyenv virtualenv "$VERSION" "$DIRNAME"
|
||||||
pyenv local "$DIRNAME"
|
pyenv local "$DIRNAME"
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z $1 ]]; then
|
|
||||||
echo "no python version provided, defaulting to $(pyenv version-name)"
|
|
||||||
VERSION=$(pyenv version-name)
|
|
||||||
else
|
|
||||||
VERSION=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
pyenv virtualenv "$VERSION" "$DIRNAME"
|
|
||||||
pyenv local "$DIRNAME"
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function lh {
|
function lh {
|
||||||
if [[ -z $1 ]]; then
|
if [[ -z $1 ]]; then
|
||||||
PORT=8000
|
PORT=8000
|
||||||
else
|
else
|
||||||
PORT=$1
|
PORT=$1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
open "http://localhost:$PORT"
|
open "http://localhost:$PORT"
|
||||||
}
|
}
|
||||||
|
|
||||||
function dps {
|
function dps {
|
||||||
if [[ -z $1 ]]; then
|
if [[ -z $1 ]]; then
|
||||||
docker ps --format table'{{ .ID }}\t{{ .Image }}\t{{ .Ports}}\t{{ .Names }}'
|
docker ps --format table'{{ .ID }}\t{{ .Image }}\t{{ .Ports}}\t{{ .Names }}'
|
||||||
else
|
else
|
||||||
docker ps --format table'{{ .ID }}\t{{ .Image }}\t{{ .Ports}}\t{{ .Names }}' | grep $1
|
docker ps --format table'{{ .ID }}\t{{ .Image }}\t{{ .Ports}}\t{{ .Names }}' | grep $1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function get_dump {
|
function get_dump {
|
||||||
if [[ -z $1 ]]; then
|
if [[ -z $1 ]]; then
|
||||||
echo "provide ssh host"
|
echo "provide ssh host"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z $2 ]]; then
|
if [[ -z $2 ]]; then
|
||||||
echo "provide dump destination"
|
echo "provide dump destination"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
selected=$(ssh "$1" docker ps --format "{{.Names}}" | fzf)
|
selected=$(ssh "$1" docker ps --format "{{.Names}}" | fzf)
|
||||||
|
|
||||||
if [[ -z $selected ]]; then
|
if [[ -z $selected ]]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ssh "$1" docker exec "$selected" pg_dump -U db --format=c db > "$2$(date +'%Y-%m-%dT%H.%M.%S%z')"
|
ssh "$1" docker exec "$selected" pg_dump -U db --format=c db >"$2$(date +'%Y-%m-%dT%H.%M.%S%z')"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function ggcompile {
|
function ggcompile {
|
||||||
find -L $GGROOT -mindepth 1 -maxdepth 5 -type d -name .git -prune | xargs -n 1 dirname > "$GGROOT/compiled"
|
find -L "$GGROOT" -mindepth 1 -maxdepth 5 -type d -name .git -prune \
|
||||||
|
-exec dirname {} \; >"$GGROOT/compiled"
|
||||||
}
|
}
|
||||||
|
|
||||||
function tssh {
|
function tssh {
|
||||||
if [[ -z $1 ]]; then
|
if [[ -z $1 ]]; then
|
||||||
echo "provide ssh host"
|
echo "provide ssh host"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ssh -t "$@" "command -v tmux && (tmux a || tmux new-session -s gorazd -c ~) || bash"
|
ssh -t "$@" "command -v tmux && (tmux a || tmux new-session -s gorazd -c ~) || bash"
|
||||||
|
}
|
||||||
|
|
||||||
|
function ssh-menu {
|
||||||
|
selected=$(
|
||||||
|
grep 'Host .*' ~/.ssh/config \
|
||||||
|
| grep -v '*' \
|
||||||
|
| sed 's/Host \(.*\)/\1/' \
|
||||||
|
| fzf --cycle --bind 'tab:toggle-up,btab:toggle-down'
|
||||||
|
)
|
||||||
|
|
||||||
|
if [[ -z $selected ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
ssh "$selected"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue