mv sima-docker sima and add album/top configurations
[sima-docker.git] / do
1 #!/bin/sh
2
3 DIR=$(dirname $(readlink -f $0))
4
5 ICE_PORT=${ICEPORT:-8001}
6 MPD_PORT=${MPDPORT:-6601}
7 LISTEN=${LISTEN:-127.0.0.1}
8
9 # make output verbose
10 #set -o xtrace -o nounset
11 _is_running () {
12     IS_RUNNING=$(docker inspect --format='{{.State.Running}}' sima 2>&1)
13     case $IS_RUNNING in
14         true)
15             return 0
16             ;;
17         false)
18             return 1
19             ;;
20         *)
21             #echo $IS_RUNNING
22             return 2
23             ;;
24     esac
25 }
26
27 build () {
28     # Build image with icecast
29     docker build -t kaliko/sima ${DIR}/sima
30 }
31
32 log () {
33     _is_running && docker logs -f sima
34 }
35
36 discover () {
37     arg=${1:-false}
38     _is_running || { echo "No running container detected!"; exit 1; }
39     docker port sima | awk '$1 ~ /^8000\/tcp.*/ { printf "# HTTP running on: http://%s\n", $3 }'
40     if [ $arg = "false" ];then
41         docker port sima | awk -F: '$1 ~ /^6600\/tcp.*/ { printf "# MPD running on port: %s\n", $2 }'
42     else
43         docker port sima | awk -F: '$1 ~ /^6600\/tcp.*/ { printf "# MPD running on port: %s\nexport MPD_PORT=%s\n", $2, $2 }'
44     fi
45 }
46
47 start () {
48     # Start
49     _is_running
50     case $? in
51         0)
52             echo 'Already running container'
53             ;;
54         1)
55             echo 'Running the current sima container'
56             docker start sima
57             ;;
58         *)
59             test -z "${MUSIC}" && { echo "# Need a music directory to mount, please set MUSIC var:";
60                 echo "MUSIC=~Music ./do start";
61                 exit 1; }
62             echo 'launching a new sima container'
63             local options="-p ${LISTEN}:${ICE_PORT}:8000"
64             options="${options} -p ${LISTEN}:${MPD_PORT}:6600"
65             options="${options} --volume ${MUSIC}:/music:ro"
66             docker run ${options} --detach=true --name sima kaliko/sima
67             ;;
68     esac
69     discover
70 }
71
72 stop () {
73     _is_running && docker stop -t 3 sima
74 }
75
76 $@