commit eb63cf8

hovercats  ·  2023-02-21 15:31:43 +0000 UTC
parent 2a108a5
bmks: nits. exit if no selection was made when running go_to function
1 files changed,  +26, -21
M bmks
M bmks
+26, -21
 1@@ -2,11 +2,9 @@
 2 
 3 # A simple bookmarking script that uses dmenu
 4 
 5-file_path="$HOME/etc/bmks/"
 6+file_path="$HOME/etc/bmks"
 7 filename=urls
 8 bookmarks="$file_path/$filename"
 9-browser="$BROWSER"
10-launcher=dmenu
11 
12 usage () {
13     printf "bmks: A simple bookmarking script that uses dmenu
14@@ -26,40 +24,47 @@ Configuration is done directly in script by editing the variables.
15 
16 }
17 bmks_add () { 
18-	[ -z "$url" ] && printf "Error: url must be provided\n" && exit 0
19-  printf "Description: "
20-  read -r description
21-  [ -z "$description" ] && echo "$url" >> "$bookmarks"
22-  [ -n "$description" ] && echo "$description" - "$url" >> "$bookmarks"
23+	[ -z "$url" ] && printf "Error: url must be provided\n" && exit 1
24+	printf "Description: "
25+	read -r description
26+	[ -z "$description" ] && echo "$url" >> "$bookmarks"
27+	[ -n "$description" ] && echo "$description" - "$url" >> "$bookmarks"
28 }
29 
30 bmks_ls () {
31-    sort "$bookmarks"
32+	sort "$bookmarks"
33 }
34 
35 go_to () {
36-    case $launcher in
37-      dmenu) $browser $(sort "$bookmarks" | dmenu -i -l 10 | awk '{print $(NF)}') ;;
38-    esac
39+SELECTION="$(sort "${bookmarks}" | dmenu -i -l 10 | awk '{print $(NF)}')"
40+if [ -z "${SELECTION}" ]; then
41+	exit 1
42+else
43+	"${BROWSER}" "${SELECTION}"
44+fi
45 }
46 
47 bmks_del () {
48-  case "$launcher" in
49-    dmenu) sed "/$(sort "$bookmarks" | dmenu -i -l 10)/d" "$bookmarks" > _ && mv -f _ "$bookmarks" ;;
50-esac
51+	case "$$" in
52+		*) sed "/$(sort "$bookmarks" | dmenu -i -l 10)/d" "$bookmarks" > _ && mv -f _ "$bookmarks" ;;
53+	esac
54 }
55 
56 bmks_check () {
57-    [ ! -s "$bookmarks" ] && printf "No bookmarks found. please add one" && usage && exit 0
58+	if [ ! -s "${bookmarks}" ]; then
59+	printf "No bookmarks found. please add one"
60+	usage
61+	exit 1
62+	fi
63 }
64 
65 [ ! -d "$file_path" ] && mkdir -p "$file_path"
66 [ ! -f "$filename" ] && touch "$file_path/$filename" 
67 
68 case "$1" in
69-    help) usage ;;
70-    add) url=$2 bmks_add ;;
71-    ls) bmks_ls ;;
72-    del) bmks_del ;;
73-    *) go_to ;;
74+	help) usage ;;
75+	add) url=$2 bmks_add ;;
76+	ls) bmks_ls ;;
77+	del) bmks_del ;;
78+	*) go_to ;;
79 esac