+57
mark
+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