Recently Written · git

dsad

Dmenu interface for Simple Audio Daemon

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

Log | Files | Refs


commit 119e7b2298610b6772ce4a2344838477e0f7dc77
Spenser Truex <truex@equwal.com>
2021-01-19 22:33:10 -0800

INTNRIOSTNRSTILONR COMIOTMROSTN

 sad-add   | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 sad-start |  3 +++
 2 files changed, 54 insertions(+)
diff --git a/sad-add b/sad-add
new file mode 100755
index 0000000..6ef5e37
--- /dev/null
+++ b/sad-add
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# Start with a folder or a "playlist".
+# A playlist is a newline-separated list of files/folders.
+# You can't have newlines in any files in a playlist.
+SAD_SOCK=${SAD_SOCK:-"$HOME"/.socket}
+SAD_PATH=${SAD_PATH:-"$HOME"/aud}
+SAD_PATH="$SAD_PATH"/$1
+SAD_DEFAULT_MODE=${SAD_DEFAULT_MODE:-"random"}
+
+
+# Portable echo. No arguments.
+echo () { printf %s\\n "$*" ; }
+
+nosock () {
+    echo "Socket not found at $SAD_SOCK"
+    echo "Did you start the SAD?\nsad -f $SAD_SOCK &"
+}
+nopath () {
+    echo "Playlist/folder not found at $SAD_PATH"
+    echo "You can set the working dir with SAD_PATH"
+}
+
+[ -e "$SAD_SOCK" ] || nosock
+[ -e "$SAD_PATH" ] || nopath
+
+echo 'h'
+
+if [ ! -S "$SAD_SOCK" ]; then
+	echo "$0: no unix domain socket at: ${SAD_SOCK}" >&2
+	exit 1
+fi
+
+echo $SAD_SOCK $SAD_PATH
+
+while read -r p; do
+    d=$(dirname "$p")
+    echo $d
+    test -d "$d" || printf 'add %s\n' "$d" | nc -U "$SAD_SOCK"
+    find "$d" -type f \
+        \( -iname "*.mp3" -or \
+        -iname "*.ogg" -or \
+        -iname "*.flac" -or \
+        -iname "*.wav" \) \
+        -exec printf 'add %s\n' {} \; | \
+        nc -NU "$SAD_SOCK"
+done <<-!__EOF__
+$SAD_PATH
+!__EOF__
+
+echo
diff --git a/sad-start b/sad-start
new file mode 100755
index 0000000..b0e6d9f
--- /dev/null
+++ b/sad-start
@@ -0,0 +1,3 @@
+#!/bin/sh
+${SAD_SOCK:-"$HOME"/.socket}
+sad -f "$SAD_SOCK"