X-Git-Url: https://git.kaliko.me/?p=sima-docker.git;a=blobdiff_plain;f=do;h=3c52f10a47da2e2b6f5a7c0ce20315a077a58844;hp=ce545325b4e8b3cb1a4fed3844eaecff81a01c60;hb=89566d43373e92284868e8dc70ea08ab9a7cd36b;hpb=a010d166231a110fa01b2cc244437680b1ad11e0 diff --git a/do b/do index ce54532..3c52f10 100755 --- a/do +++ b/do @@ -7,13 +7,22 @@ MPD_PORT=${MPDPORT:-6601} LISTEN=${LISTEN:-127.0.0.1} # make output verbose -set -o xtrace -o nounset - -_conf () { - # Get the latest icecast conf - docker run --rm sima -v ${DIR}:/tmp/ debian:latest cp -f /icecast/icecast.xml /tmp/current.icecast.conf.xml +#set -o xtrace -o nounset +_is_running () { + IS_RUNNING=$(docker inspect --format='{{.State.Running}}' sima 2>&1) + case $IS_RUNNING in + true) + return 0 + ;; + false) + return 1 + ;; + *) + #echo $IS_RUNNING + return 2 + ;; + esac } - log_icecast () { # Monitor logs docker exec -ti sima /usr/bin/tail -F /var/log/icecast2/access.log /var/log/icecast2/error.log @@ -24,20 +33,49 @@ build () { docker build -t kaliko/sima ${DIR}/sima } -run () { - # Start - test -z "${MUSIC}" && { echo "Need a music directory to mount please set MUSIC var"; exit 1; } - docker ps -a | grep 'sima' - if [ "$?" -ne 0 ]; then - echo 'launching a new sima container' - local options="-p ${LISTEN}:${ICE_PORT}:8000" - options="${options} -p ${LISTEN}:${MPD_PORT}:6600" - options="${options} --volume ${MUSIC}:/var/lib/mpd/music:ro" - docker run ${options} --detach=true --name sima kaliko/sima +log () { + _is_running && docker logs -f sima +} + +stop () { + _is_running && docker stop -t 3 sima +} + +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 - echo 'running the current sima container' - docker start sima + docker port sima | awk -F: '$1 ~ /^6600\/tcp.*/ { printf "# MPD running on port: %s\nexport MPD_PORT=%s\n", $2, $2 }' fi } +run() { start; } +start () { + # Start + _is_running + case $? in + 0) + echo 'Already running container' + ;; + 1) + echo 'Running the current sima container' + docker start sima + ;; + *) + test -z "${MUSIC}" && { echo "# Need a music directory to mount, please set MUSIC var:"; + echo "MUSIC=~Music ./do start"; + exit 1; } + echo 'launching a new sima container' + local options="-p ${LISTEN}:${ICE_PORT}:8000" + options="${options} -p ${LISTEN}:${MPD_PORT}:6600" + options="${options} --volume ${MUSIC}:/music:ro" + docker run ${options} --detach=true --name sima kaliko/sima + ;; + esac + discover +} + $@