Recently Written · git

sbm

dmenu bookmarks. Instantly fuzzy search thousands of bookmarks and plumb them. LOOKING FOR SUCKLESS SOFTWARE EDITION? GO TO sbm-suckless INSTEAD

git clone https://github.com/equwal/sbm

Log | Files | Refs


commit 20dcf6104b65502609ddd5de50e595764c30bbc6
Spenser Truex <truex@equwal.com>
2021-01-09 14:26:47 -0800

Simplify build process.

 Makefile   | 24 ++++++++----------------
 bin/bm     |  9 ---------
 bin/bmclip |  2 --
 bm         | 35 +++++++++++++++++++++++++++++++++++
 4 files changed, 43 insertions(+), 27 deletions(-)
diff --git a/Makefile b/Makefile
index ecb3ac0..64a34e6 100644
--- a/Makefile
+++ b/Makefile
@@ -5,28 +5,20 @@ all:
 
 dist:
 	@echo creating dist tarball
-	@mkdir -p sbm-${VERSION}
-	@cp -R LICENSE Makefile config.mk bin sbm-${VERSION}
-	@tar -cf sbm-${VERSION}.tar sbm-${VERSION}
+	@mkdir -p sbm-${VERSION}-temp
+	@cp -R Makefile config.mk bm  sbm-${VERSION}-temp
+	@tar -cf sbm-${VERSION}.tar sbm-${VERSION}-temp
 	@gzip sbm-${VERSION}.tar
-	@rm -rf sbm-${VERSION}
+	@rm -rf sbm-${VERSION}-temp
 
 install:
-	@echo installing scripts to ${DESTDIR}${PREFIX}
+	@echo installing scripts to ${DESTDIR}${PREFIX}/bin
 	@mkdir -p ${DESTDIR}${PREFIX}
-	@cd bin
-	for i in bin/*; \
-	do \
-		cp $$i ${DESTDIR}${PREFIX}/bin; \
-		chmod 755 ${DESTDIR}${PREFIX}/$$i;	\
-	done; true
+	@cp bm ${DESTDIR}${PREFIX}/bin
+	@chmod 755 ${DESTDIR}${PREFIX}/bin/bm
 
 uninstall:
 	@echo removing scripts
-	@cd bin
-	for i in ./*; \
-	do \
-		rm -f ${DESTDIR}${PREFIX}/bin/$$i;	\
-	done; true
+	rm -f ${DESTDIR}${PREFIX}/bin/bm
 
 
diff --git a/bin/bm b/bin/bm
deleted file mode 100755
index c90d6b5..0000000
--- a/bin/bm
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-help () {
-	exit 1
-}
-
-[ "$1" = "--help" ] || [ "$1" = "-h" ] && help
-
-sort -t2 "$BOOKMARKS" | dmenu -f -l 9 -p "bookmark:" | cut -f 1
diff --git a/bin/bmclip b/bin/bmclip
deleted file mode 100755
index a4235f9..0000000
--- a/bin/bmclip
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-bm "$BOOKMARKS" | xclip -i -selection clipboard
diff --git a/bm b/bm
new file mode 100755
index 0000000..9cf3ba7
--- /dev/null
+++ b/bm
@@ -0,0 +1,35 @@
+#!/bin/sh
+DMENULINES=15
+
+help () {
+    echo "Call without an argument to be prompted with dmenu."
+    echo "Flags:"
+    printf "-h, --help\n-c, --copy\n-a, --add\n-e, --edit\n"
+}
+copy () {
+    sort -t2 "$BOOKMARKS" | dmenu -l $DMENULINES -p "bookmark:" | cut -f 1 | xclip -i -selection clipboard
+}
+add () {
+
+}
+edit () {
+
+}
+
+promptflag () {
+    prompt="$(printf 'copy\nadd\nedit')"
+    action="$(dmenu -l 3 -p '$prompt')"
+    [ "$action" = "copy" ] && copy
+    [ "$action" = "edit" ] && edit
+    [ "$action" = "add" ] && add
+}
+argparse () {
+    arg="$1"
+    [ "$1" = '-h' ] || [ "$1" = '--help' ] && help && exit 0
+    [ "$1" = '-c' ] || [ "$1" = '--copy' ] && copy && exit 0
+    [ "$1" = '-a' ] || [ "$1" = '--add' ]  && add && exit 0
+    [ "$1" = '-e' ] || [ "$1" = '--edit' ] && edit && exit 0
+    [ -z "$1" ] && promptflag
+}
+
+[ -z "$2" ] && argparse "$1" || echo "Too many arguments: use one or none." && exit 1