My Unix config files and shell scripts, optimized for Fedora, Debian, macOS and Windows (in that order).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

64 lines
1.5 KiB

###
# Common shell functions/aliases between bash and zsh.
###
# Notify to update the dotfiles.
dfm check-update
################################################################################
## Functions
################################################################################
# Poor Man's ngrok. https://www.kirsle.net/blog/entry/poor-mans-ngrok
tunup() {
port=${1:-5000}
echo "Forwarding kirsle.net:5000 to local port $port"
ssh -R 5000:127.0.0.1:$port kirsle
}
# Recursively traverse directory tree for git repositories, run git command
# e.g.
# rgit status
# rgit diff
#
# Credit:
# http://chr4.org/blog/2014/09/10/gittree-bash-slash-zsh-function-to-run-git-commands-recursively/
rgit() {
if [ $# -lt 1 ]; then
echo "Usage: rgit <command>"
return 1
fi
for gitdir in $(find . -type d -name .git); do
# Display repository name in bold orange text.
repo=$(dirname $gitdir)
echo -e "\e[1;38;5;208m$repo\e[0m"
# Run git command in the repository's directory
cd $repo && git $@
ret=$?
# Return to calling directory (ignore output)
cd - >/dev/null
# Abort if cd or git command fails
if [ $ret -ne 0 ]; then
return 1
fi
echo
done
}
# Push and pull my KeePass DB from remote storage.
pw-push() {
rsync -av ~/.config/pwdb/kirsle.kdbx kirsle:/mnt/volume/pwdb/
}
pw-pull() {
rsync -av kirsle:/mnt/volume/pwdb/kirsle.kdbx ~/.config/pwdb/
}
# Generate a random UUID4 string.
uuid4() {
python -c "import uuid; print(str(uuid.uuid4()))"
}