Run MPD_sima on unix socket
authorkaliko <kaliko@azylum.org>
Mon, 26 Oct 2015 11:15:27 +0000 (12:15 +0100)
committerkaliko <kaliko@azylum.org>
Mon, 26 Oct 2015 11:15:27 +0000 (12:15 +0100)
README.rst
do
sima/Dockerfile

index b1ee0d2..33b1362 100644 (file)
@@ -11,10 +11,19 @@ tl;dr
 
 ::
 
-    MUSIC=/pat/to/my/music/library ./do run
+    MUSIC=/path/to/my/music/library ./do start
 
 Then point your MPD client to ``127.0.0.1:6601``. Audio stream from http://127.0.0.1:8001/sima.ogg .
 
+You can set listening adress/port if needed::
+
+    MUSIC=/path/to/my/music/library \
+    LISTEN=192.168.0.10 \
+    ICEPORT=80 MPDPORT=6666
+    ./do start
+    ./do discover
+
+
 Configuration
 =============
 
diff --git a/do b/do
index 1714c17..5a68462 100755 (executable)
--- a/do
+++ b/do
@@ -1,13 +1,29 @@
 #!/bin/sh
 
-DIR=$(dirname $(readlink -f $0))
+# make output verbose
+#set -o xtrace -o nounset
+
+ROOT=$(dirname $(readlink -f $0))
+SCRIPT=$(basename $0)
+
+_inspect () {
+    # Auto generate help string
+    local help=$(awk '$1 ~ /^[a-z]+_?[a-z]+$/ && $2 == "()" { printf "%s|", $1 }' $0)
+    echo ${help%|}
+}
+_test () {
+    local cmds='docker awk'
+    for cmd in $cmds;do
+        type $cmd >/dev/null 2>&1 || { echo "Missing '$cmd' command, please install"; return 1; }
+    done
+}
+_test || exit 1
+###############################################################################
 
 ICE_PORT=${ICEPORT:-8001}
 MPD_PORT=${MPDPORT:-6601}
 LISTEN=${LISTEN:-127.0.0.1}
 
-# make output verbose
-#set -o xtrace -o nounset
 _is_running () {
     IS_RUNNING=$(docker inspect --format='{{.State.Running}}' sima 2>&1)
     case $IS_RUNNING in
@@ -26,7 +42,7 @@ _is_running () {
 
 build () {
     # Build image with icecast
-    docker build -t kaliko/sima ${DIR}/sima
+    docker build -t kaliko/sima ${ROOT}/sima
 }
 
 log () {
@@ -37,13 +53,10 @@ discover () {
     arg=${1:-false}
     _is_running || { echo "No running container detected!"; exit 1; }
     docker port sima | awk '$1 ~ /^8000\/tcp.*/ { printf "# HTTP running on: http://%s\n", $3 }'
-    if [ $arg = "false" ];then
-        docker port sima | awk -F: '$1 ~ /^6600\/tcp.*/ { printf "# MPD running on port: %s\n", $2 }'
-    else
-        docker port sima | awk -F: '$1 ~ /^6600\/tcp.*/ { printf "# MPD running on port: %s\nexport MPD_PORT=%s\n", $2, $2 }'
-    fi
+    docker port sima | awk '$1 ~ /^6600\/tcp.*/ { printf "# MPD running : %s\n", $3 }'
 }
 
+run () { start; }
 start () {
     # Start
     _is_running
@@ -73,4 +86,10 @@ stop () {
     _is_running && docker stop -t 3 sima
 }
 
-$@
+if [ $# -eq 0 ]
+then
+    echo "${ROOT}/${SCRIPT} $(_inspect)"
+    exit
+fi
+
+$1
index f90412a..496b1a3 100644 (file)
@@ -17,6 +17,8 @@ VOLUME /var/lib/mpd/
 # expose icecast and mpd
 EXPOSE 8000 6600
 
+ENV MPD_HOST /run/mpd/socket
+
 ADD start /usr/bin/start-sima
 ADD mpd-sima /usr/bin/mpd-sima
 ADD mpd-sima.top.cfg mpd-sima.album.cfg /etc/