From 2def6a54397295569ef4715a6afe31cd0a2f79a5 Mon Sep 17 00:00:00 2001 From: Wryn Wagner Date: Thu, 8 Oct 2020 17:39:36 -0600 Subject: [PATCH] Cleaned up utilties. Extracted notetaker to it's own module --- zsh/notetaker | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++ zsh/utility | 62 +++++++++++++++++++------------------- 2 files changed, 114 insertions(+), 30 deletions(-) create mode 100644 zsh/notetaker diff --git a/zsh/notetaker b/zsh/notetaker new file mode 100644 index 0000000..699fd9f --- /dev/null +++ b/zsh/notetaker @@ -0,0 +1,82 @@ +#!/bin/zsh +# +alias note="TAKE_NOTE_OR_MEMO note" +alias memo="TAKE_NOTE_OR_MEMO memo" +alias memos="TAKE_NOTE_OR_MEMO viewmemos" + +function TAKE_NOTE_OR_MEMO() { + local FILENAME="$2"; + + local MEMO_DIR="$HOME/.memos"; + local FILETYPE='md'; + + local DIR=""; + local TITLE="$FILENAME"; + local ADD_EDITOR_ARGS=0; + local EDITOR_ARGS=''; + + local ERROR_CODE=0; + + case $1 in + + viewmemos ) + [ -d $MEMO_DIR ] || { + echo "unable to find any memos; try to make a memo first"; + ERROR_CODE=1; + } + + DIR="$MEMO_DIR" + FILENAME=''; + ;; + + memo ) + [ -d $MEMO_DIR ] || { + mkdir $MEMO_DIR || { + echo "unable to find or create memo directory '$MEMO_DIR'" + ERROR_CODE=2; + } + } + DIR="$MEMO_DIR" + + [ $FILENAME ] && FILENAME="$FILENAME.$FILETYPE"\ + || { + for i in {001..999}; do + TITLE="$i"; + FILENAME="$i.$FILETYPE"; + [ ! -f "$MEMO_DIR/$i.$FILETYPE" ] && break; + done + } + + ADD_EDITOR_ARGS=1; + ;; + + note ) + DIR="." + + [ $FILENAME ] || { + FILENAME="$(date -I)-notes"; + TITLE='Notes'; + ADD_EDITOR_ARGS=1; + } + + FILENAME="$FILENAME.$FILETYPE" + ;; + + * ) + echo "please specify whether this is an in-place 'note' or a general 'memo'"; + ERROR_CODE=3; + ;; + esac + + [ $ERROR_CODE -ne 0 ] && { + echo 'syntax: `TAKE_NOTE_OR_MEMO [ note | memo | viewmemos ] [ filename ]`'; + return $ERROR_CODE; + } + + [ $ADD_EDITOR_ARGS -ne 0 ] && { + DATESTRING="$(date '+%A, %B %-d, %Y')" + [ $EDITOR == 'vim' ] && EDITOR_ARGS='-c "normal! i# $TITLE :: $DATESTRING"'; + } + + eval "$EDITOR $EDITOR_ARGS $DIR/$FILENAME"; +} diff --git a/zsh/utility b/zsh/utility index 4d994c3..243b538 100644 --- a/zsh/utility +++ b/zsh/utility @@ -1,26 +1,45 @@ #!/bin/zsh -# --- Shortcuts for quick ARANDR switch ----------------------- -alias undock="$DOTWRYN/config/xserver/screenlayout/undock.sh"; -alias workdock="$DOTWRYN/config/xserver/screenlayout/workdock.sh"; -alias homedock="$DOTWRYN/config/xserver/screenlayout/homedock_hdmionly.sh"; -alias hdmidock="$DOTWRYN/config/xserver/screenlayout/hdmidock.sh"; +# --- Basic Alias --------------------------------------------- +alias pd='pushd'; +alias qd='popd'; +alias lspd='dirs'; + +alias pdo='pwd | xclip'; # [p]aste current [d]irectory [o]n clipboard +alias cdo='cd $(xclip -o)'; # [cd] to directory [o]n clipboard + +alias color_demo='msgcat --color=test' -# --- Note-taking facilitated --------------------------------- -NOTE_PATH='/Users/w0ryn/Documents/notes'; -NOTE_EXTENSION='.txt'; -alias mynotes='cd $NOTE_PATH'; -function note() { vim $NOTE_PATH/$1$NOTE_EXTENSION; } -function notes() { NOTE="$NOTE_PATH/$1$NOTE_EXTENSION"; [ $1 ] && [ -f $NOTE ] && vim $NOTE || vim $NOTE_PATH; } # --- GIT ----------------------------------------------------- alias gitbranchcleanup='git branch -d $(git branch | sed -E "/develop|master|\*/d")' alias fix='vim $(git diff --name-only | uniq) -p'; +alias github="OPEN_CURRENT_GIT_REPOSITORY_IN_WEB_BROWSER" +OPEN_CURRENT_GIT_REPOSITORY_IN_WEB_BROWSER() { + local REMOTE; + [ $1 ] && REMOTE="$1" || REMOTE="origin"; -alias monitor_connection='MONITOR_GLOBAL_INTERNET_CONNECTION'; + git remote get-url $REMOTE >/dev/null 2>&1 || { + echo "no remote called '$REMOTE' here"; + return 1; + } + local URL="$(git remote get-url $REMOTE | sed 's/git@\([^:]*\):/http:\/\/\1\//')" + xdg-open $URL; +} -MONITOR_GLOBAL_INTERNET_CONNECTION() { + +# --- Miscellaneous ------------------------------------------- +alias rgv='EDIT_RIP_GREP_FILE_MATCHES'; +EDIT_RIP_GREP_FILE_MATCHES() { + [ $EDITOR = "vim" ] \ + && $EDITOR -p $(rg -l $1) \ + || $EDITOR $(rg -l $1) ; +} + + +alias monitor_connection='PING_MONITOR_GLOBAL_INTERNET_CONNECTION'; +PING_MONITOR_GLOBAL_INTERNET_CONNECTION() { local DELIMITER="\n==============================\n"; local CONNECTION_MONITOR_FILE="$HOME/.local/connection" @@ -44,20 +63,3 @@ MONITOR_GLOBAL_INTERNET_CONNECTION() { sleep 30; done; } - -alias pd='pushd'; -alias qd='popd'; -alias ds='dirs'; -alias cdo='cd $(xclip -o)'; -alias pdo='pwd | xclip'; - -alias rgv='EDIT_RIP_GREP_FILE_MATCHES'; - -EDIT_RIP_GREP_FILE_MATCHES() { - [ $EDITOR = "vim" ] \ - && $EDITOR -p $(rg -l $1) \ - || $EDITOR $(rg -l $1) ; -} - - -alias color_demo='msgcat --color=test'