add mark

Changed files
+57
+57
mark
··· 1 + #!/bin/bash 2 + # 3 + # quick and easy directory bookmarks. pure bash 4 + 5 + MARK_FILE="$HOME/.marksh" 6 + 7 + # create bm file if it doesn't exist 8 + mark_file_create() { 9 + if [[ -z $MARK_FILE ]]; then 10 + touch $MARK_FILE 11 + else 12 + echo "MARK_FILE already exists" 13 + fi 14 + } 15 + 16 + # add bookmark to file 17 + mark_create() { 18 + printf "$(pwd)\n" >> $MARK_FILE 19 + } 20 + 21 + # search bookmarks 22 + mark_search() { 23 + choice="$(cat $MARK_FILE | fzf)" 24 + printf '%s' "$choice" | tee >(xclip -sel clip) 25 + } 26 + 27 + # clear bookmark file 28 + mark_clear() { 29 + read -p "clear bookmarks; are you sure? y/n/c" choice 30 + 31 + case $choice in 32 + [yY]* ) echo -n "" > $MARK_FILE ;; 33 + [nN]* ) echo "nothing cleared :)" ;; 34 + [cC]* ) echo "canceled!" ;; 35 + *) exit ;; 36 + esac 37 + } 38 + 39 + # whole thing 40 + case "$1" in 41 + "") 42 + printf "usage: mark add | mark search | mark clear" 43 + exit 0 44 + ;; 45 + "add") 46 + mark_create 47 + exit 0 48 + ;; 49 + "search" | "list") 50 + mark_search 51 + exit 0 52 + ;; 53 + "clear") 54 + mark_clear 55 + exit 0 56 + ;; 57 + esac