mirror of
https://github.com/nmasur/dotfiles
synced 2024-11-23 01:05:38 +00:00
146 lines
3.3 KiB
Plaintext
146 lines
3.3 KiB
Plaintext
# Open in Emacs
|
|
edit() {
|
|
emacsclient --no-wait --alternate-editor="emacs" "$@" &> /dev/null & disown
|
|
}
|
|
|
|
# Create QR code from link
|
|
qr() { qrencode "$1" -t ANSIUTF8 -o -; }
|
|
|
|
# Open directory in projects
|
|
prj() {
|
|
local projdir
|
|
projdir=$(ls $PROJ | fzf)
|
|
if [[ -z $projdir ]]
|
|
then
|
|
return 1
|
|
else
|
|
cd $projdir
|
|
fi
|
|
}
|
|
|
|
# Activate pyenv virtualenv
|
|
venv() {
|
|
source ~/.pyenv/versions/$1/bin/activate
|
|
}
|
|
|
|
# Temporarily enter iPython interpreter with its Pyenv
|
|
ipy() {
|
|
STORED_VENV=$VIRTUAL_ENV
|
|
source $WORKON_HOME/ipython/bin/activate && \
|
|
ipython && \
|
|
deactivate && \
|
|
if [ $STORED_VENV ]; then
|
|
source $STORED_VENV/bin/activate
|
|
fi
|
|
}
|
|
|
|
# Run pylint on all python files
|
|
lint() {
|
|
fd -IH -t f .py$ | xargs pylint
|
|
}
|
|
|
|
# Stolen from: https://github.com/davidpdrsn/dotfiles/blob/master/zsh/functions
|
|
|
|
# Extract archives
|
|
extract() {
|
|
if [ -f $1 ] ; then
|
|
case $1 in
|
|
*.tar.bz2) tar xjf $1 ;;
|
|
*.tar.gz) tar xzf $1 ;;
|
|
*.bz2) bunzip2 $1 ;;
|
|
*.rar) rar x $1 ;;
|
|
*.gz) gunzip $1 ;;
|
|
*.tar) tar xf $1 ;;
|
|
*.tbz2) tar xjf $1 ;;
|
|
*.tgz) tar xzf $1 ;;
|
|
*.zip) unzip $1 ;;
|
|
*.Z) uncompress $1 ;;
|
|
*.7z) 7z x $1 ;;
|
|
*) echo "'$1' cannot be extracted via extract()" ;;
|
|
esac
|
|
else
|
|
echo "'$1' is not a valid file"
|
|
fi
|
|
}
|
|
|
|
# fe [FUZZY PATTERN] - Open the selected file with the default editor
|
|
# - Bypass fuzzy finder if there's only one match (--select-1)
|
|
# - Exit if there's no match (--exit-0)
|
|
fe() {
|
|
local file
|
|
file=$(fzf --query="$1" --select-1 --exit-0)
|
|
[ -n "$file" ] && ${EDITOR:-vim} "$file"
|
|
}
|
|
|
|
# fd - cd to selected directory
|
|
fcd() {
|
|
local dir
|
|
dir=$(find ${1:-*} -path '*/\.*' -prune \
|
|
-o -type d -print 2> /dev/null | fzf +m) &&
|
|
cd "$dir"
|
|
}
|
|
|
|
# dir - fd name of dir in this directory
|
|
dir() {
|
|
# fd ".*$1.*" -H -d 1
|
|
ls -lha | rg "$1"
|
|
}
|
|
|
|
# vers - switch to pyenv virtualenv with fuzzy menu
|
|
vers() {
|
|
local version
|
|
version=$(pyenv versions --bare --skip-aliases | fzf)
|
|
if [[ -z $version ]]
|
|
then
|
|
return 1
|
|
else
|
|
source $WORKON_HOME/$version/bin/activate
|
|
fi
|
|
}
|
|
|
|
# unsetaws - remove all AWS environment variables
|
|
unsetaws() {
|
|
unset AWS_ACCESS_KEY_ID
|
|
unset AWS_SECRET_ACCESS_KEY
|
|
}
|
|
|
|
copy() {
|
|
cat $1 | pbcopy
|
|
}
|
|
|
|
cloud() {
|
|
profile=${$1:-default}
|
|
search=${2:-prod}
|
|
num=${$3:-1}
|
|
ips=$(drips --raw | grep $search)
|
|
if [[ -z $ips ]]
|
|
then
|
|
echo "Failed to find instances."
|
|
return 1
|
|
fi
|
|
count=$(echo $ips | wc -l)
|
|
echo "Found ${count##*( )} instances."
|
|
ip=$(echo $ips | sed -n "$num"p | awk -F' - ' '{print $2}')
|
|
if [[ -z $ip ]]
|
|
then
|
|
echo "Not an available selection."
|
|
return 1
|
|
fi
|
|
update-ssh-config --host $search --hostname $ip
|
|
ssh $search
|
|
}
|
|
|
|
journal() {
|
|
today=$(date -j +"%Y-%m-%d_%a")
|
|
today_journal=$HOME/Documents/notes/journal/$today.md
|
|
if [[ -f $today_journal ]]
|
|
then
|
|
echo "Already exists."
|
|
else
|
|
yesterday=$(date -jv "-1d" +"%Y-%m-%d_%a")
|
|
tomorrow=$(date -jv "+1d" +"%Y-%m-%d_%a")
|
|
printf "[[journal/$yesterday|Previous]] - [[calendar|Index]] - [[journal/$tomorrow|Next]]\n\n---\n\n# Tasks\n\n\n# Log\n\n\n# Communication\n\n---\n\n# Meetings\n\n" > $today_journal
|
|
echo "New journal added."
|
|
fi
|
|
}
|