Skip to content

Instantly share code, notes, and snippets.

@gilbertw1
Created November 19, 2020 17:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gilbertw1/f7979645af673864f0803c4eecd0e14d to your computer and use it in GitHub Desktop.
Save gilbertw1/f7979645af673864f0803c4eecd0e14d to your computer and use it in GitHub Desktop.
#!/bin/sh
if [ -z "$QNOTE_DEFAULT_EXT" ]; then
QNOTE_DEFAULT_EXT="md"
fi
QNOTE_DIR="~/.qnote"
QNOTE_DIR="${QNOTE_DIR/#\~/$HOME}"
if [ ! -d "$QNOTE_DIR" ]; then
echo "$QNOTE_DIR does next exits, creating..."
mkdir -p "$QNOTE_DIR"
fi
QNOTE_DIR_ESCAPED="$(echo "$QNOTE_DIR" | sed 's/\//\\\//g')"
NOTES="$(find "$QNOTE_DIR" -type f | sed "s/^${QNOTE_DIR_ESCAPED}\///")"
DELETE=false
# prompt the user to select a note (interactive use fzf, otherwise use rofi)
if [[ -t 0 ]]; then
NOTE="$(echo "$NOTES" | fzf-tmux --expect=ctrl-r --print-query --prompt=' ')"
if [ "$(echo "$NOTE" | sed -n '2p' | tr -d '\n')" = "ctrl-r" ]; then
NOTE="$(echo "$NOTE" | sed -n '3p' | tr -d '\n')"
DELETE=true
elif [ ! -z "$(echo "$NOTE" | sed -n '2p' | tr -d '\n')" ]; then
NOTE="$(echo $NOTE | sed -n '2p' | tr -d '\n')"
else
NOTE="$(echo $NOTE | tr -d '\n')"
fi
else
NOTE="$(echo "$NOTES" | rofi -dmenu -kb-custom-1 "Ctrl+r" -i -lines 15 -width 40 -p 'note')"
if [ "$?" = "10" ]; then
DELETE=true
fi
fi
if [ -z "$NOTE" ]; then
echo "Empty note value."
exit
fi
if $DELETE; then
echo "Deleting Note: $NOTE..."
rm "$QNOTE_DIR/$NOTE"
qnote
exit
fi
if [[ ! "$NOTE" =~ \. ]]; then
NOTE_FILENAME="$NOTE.$QNOTE_DEFAULT_EXT"
else
NOTE_FILENAME="$NOTE"
fi
NOTE_FULL_PATH="$QNOTE_DIR/$NOTE_FILENAME"
NOTE_DIRS="${NOTE_FULL_PATH%/*}"
mkdir -p "$NOTE_DIRS"
export TERM_EXEC_NAME=popwin
gvim "$NOTE_FULL_PATH"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment