Files
dotfiles/bash/.bash/functions.bash
2021-03-23 16:51:53 +00:00

78 lines
1.9 KiB
Bash

# Git pulls latest dotfiles
function update-dotfiles() {
prevdir=$PWD
if [ -d "${HOME}/.dotfiles" ]; then
cd $HOME/.dotfiles
git pull --rebase --autostash
fi
if [ -d "${HOME}/.dotfiles-private" ]; then
cd $HOME/.dotfiles-private
git pull --rebase --autostash
fi
cd $prevdir
}
# Function to manage basic stowage tasks as stow
function stow() {
if [ -d "${HOME}/.dotfiles" ]; then
if [ -d "${HOME}/.dotfiles/$1" ]; then
$HOME/.dotfiles/bin/bin/stowage $HOME/.dotfiles/$1
else
echo "Can't find $1 to stow"
echo "List of packages:"
ls -1 $HOME/.dotfiles
fi
fi
}
function add-sshkey() {
TIMEOUT="2h"
NAME=$1
if [ -z "$NAME" ]; then
echo "Current Keys"
ssh-add -L | cut -d" " -f 3-
else
if [ -f "${HOME}/.ssh/id_ed25519_${NAME}" ]; then
ssh-add -t $TIMEOUT "${HOME}/.ssh/id_ed25519_${NAME}"
else
echo "No key named ${NAME} found..."
fi
fi
}
function _add-sshkey-completions() {
COMPREPLY=( $(ls -1 ${HOME}/.ssh/id_*|cut -d'_' -f 3|cut -d'.' -f 1|sed 's/@//'|sort|uniq) )
}
complete -F _add-sshkey-completions add-sshkey
# Switch to a simple prompt for demos (thanks Mark H for the idea)
function demoprompt() {
if [ ! -z ${OLDPS1+x} ]; then
PS1=$OLDPS1
unset OLDPS1
else
OLDPS1=$PS1
PS1=" \$ "
clear
fi
}
function commit-pkm() {
if [ -d $HOME/Documents/pkm ]; then
prevdir=$PWD
cd ~/Documents/pkm
if [[ `git status --porcelain` ]]; then
echo "Changes detected, commiting..."
git add -A && git commit -a -m 'Manual savepoint'
else
echo "No changes detected"
fi
git fetch
if [ $(git rev-parse main) != $(git rev-parse refs/remotes/origin/main) ]; then
git push origin
fi
cd $PREVDIR
fi
}