139 lines
4.2 KiB
Plaintext
139 lines
4.2 KiB
Plaintext
# Update dotfiles
|
|
udot() {
|
|
cwd=$(pwd)
|
|
cd ~/.dotfiles/
|
|
info=$(git --no-pager log --pretty="%h by %an <%ae> on %cd" -1 --abbrev-commit)
|
|
local=$(git --no-pager log --pretty="%H" -1)
|
|
remote=$(git ls-remote origin | awk "/HEAD/ {print \$1}")
|
|
gstatus=$(git status --porcelain)
|
|
|
|
echo -e ' ____ ___ _____ _____ _ U _____ u ____ '
|
|
echo -e ' | _ \ \/ _ \ |_ " _| |" ___| ___ |"| \| ___"| / __"| '
|
|
echo -e ' | | | | | | | | | | U| |_ u |_"_| U | | | _|" <\___ \ '
|
|
echo -e ' | |_| |\.-,_| |_| | /| |\ \| _|/ | | \| |/__ | |___ u___) | '
|
|
echo -e ' |____/ u \_)-\___/ u |_| u |_| u/| |\u |_____| |_____| |____/ '
|
|
echo -e ' |||_ \\ _// \\_ ) ( \\,-.-,_ // \\ )( (__) '
|
|
echo -e ' (__)_) (__) (__) (__)(__) (_/ \_) (_/ (__) (__) (_/ \_) '
|
|
echo -e ''
|
|
echo -e "$info"
|
|
echo -e ""
|
|
|
|
if [ -z "$status" ]; then
|
|
echo -e "Local changes:"
|
|
echo -e "$gstatus"
|
|
echo -e ""
|
|
fi
|
|
|
|
if [ "$local" = "$remote" ]; then
|
|
echo "Already up to date :)"
|
|
else
|
|
echo -e "Updating..."
|
|
git pull
|
|
bin/dfm install
|
|
source ~/.dotfiles/aliases
|
|
source ~/.dotfiles/functions
|
|
cd $cwd
|
|
fi
|
|
echo -e ""
|
|
echo -e "Update submodules..."
|
|
git submodule init
|
|
git submodule update
|
|
echo -e ""
|
|
tmux source-file ~/.tmux.conf > /dev/null 2>&1
|
|
}
|
|
|
|
# will attach to existing tmux session, create new if one does not exist or just start bash if there is no tmux available.
|
|
function ssht(){
|
|
ssh $* -t 'tmux a || tmux || /bin/bash'
|
|
}
|
|
|
|
#Docker: bash into running Docker container
|
|
dockersh() {
|
|
docker cp ~/.dotfiles/docker.bashrc $1:/.docker.bashrc
|
|
docker cp ~/.dotfiles/aliases $1:/.docker.aliases
|
|
docker cp ~/.dotfiles/functions $1:/.docker.functions
|
|
|
|
docker exec -it $1 bash --rcfile /.docker.bashrc
|
|
}
|
|
|
|
#Docker: Show Docker container logging
|
|
dockerlog() {
|
|
docker logs -f $1
|
|
}
|
|
|
|
#Docker: run docker security check
|
|
dockersecure() {
|
|
docker run -it --net host --pid host --cap-add audit_control -v /var/lib:/var/lib -v /var/run/docker.sock:/var/run/docker.sock -v /usr/lib/systemd:/usr/lib/systemd -v /etc:/etc --label docker_bench_security --rm docker/docker-bench-security
|
|
}
|
|
|
|
# wrk - a HTTP benchmarking tool - https://github.com/wg/wrk
|
|
function wrk() {
|
|
docker run --rm williamyeh/wrk --latency $1
|
|
}
|
|
|
|
# Simple calculator
|
|
function calc() {
|
|
local result="";
|
|
result="$(printf "scale=10;$*\n" | bc --mathlib | tr -d '\\\n')";
|
|
# └─ default (when `--mathlib` is used) is 20
|
|
#
|
|
if [[ "$result" == *.* ]]; then
|
|
# improve the output for decimal numbers
|
|
printf "$result" |
|
|
sed -e 's/^\./0./' `# add "0" for cases like ".5"` \
|
|
-e 's/^-\./-0./' `# add "0" for cases like "-.5"`\
|
|
-e 's/0*$//;s/\.$//'; # remove trailing zeros
|
|
else
|
|
printf "$result";
|
|
fi;
|
|
printf "\n";
|
|
}
|
|
|
|
# Create a new directory and enter it
|
|
function mcd() {
|
|
mkdir -p "$@" && cd "$_";
|
|
}
|
|
|
|
# Run `dig` and display the most useful info
|
|
function digga() {
|
|
dig +nocmd "$1" any +multiline +noall +answer;
|
|
}
|
|
|
|
# Search in bash history
|
|
function his() {
|
|
history | grep --color=auto -i "$1";
|
|
}
|
|
|
|
# Decompress just about any compressed file format
|
|
function extract {
|
|
if [ -z "$1" ]; then
|
|
# display usage if no parameters given
|
|
echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
|
|
else
|
|
if [ -f $1 ] ; then
|
|
# NAME=${1%.*}
|
|
# mkdir $NAME && cd $NAME
|
|
case $1 in
|
|
*.tar.bz2) tar xvjf ../$1 ;;
|
|
*.tar.gz) tar xvzf ../$1 ;;
|
|
*.tar.xz) tar xvJf ../$1 ;;
|
|
*.lzma) unlzma ../$1 ;;
|
|
*.bz2) bunzip2 ../$1 ;;
|
|
*.rar) unrar x -ad ../$1 ;;
|
|
*.gz) gunzip ../$1 ;;
|
|
*.tar) tar xvf ../$1 ;;
|
|
*.tbz2) tar xvjf ../$1 ;;
|
|
*.tgz) tar xvzf ../$1 ;;
|
|
*.zip) unzip ../$1 ;;
|
|
*.Z) uncompress ../$1 ;;
|
|
*.7z) 7z x ../$1 ;;
|
|
*.xz) unxz ../$1 ;;
|
|
*.exe) cabextract ../$1 ;;
|
|
*) echo "extract: '$1' - unknown archive method" ;;
|
|
esac
|
|
else
|
|
echo "$1 - file does not exist"
|
|
fi
|
|
fi
|
|
}
|