1#!/bin/bash 2# 3# quick and easy directory bookmarks. pure bash 4 5MARK_FILE="$HOME/.marksh" 6 7# create bm file if it doesn't exist 8mark_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 17mark_create() { 18 printf "$(pwd)\n" >> $MARK_FILE 19} 20 21# search bookmarks 22mark_search() { 23 choice="$(cat $MARK_FILE | fzf)" 24 printf '%s' "$choice" | tee >(xclip -sel clip) 25} 26 27# clear bookmark file 28mark_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 40case "$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 ;; 57esac