867d8ae55e934ba85aa99c9868a26a10f25b9fdd
[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
12 _conf () {
13     # Get the latest icecast conf
14     docker run --rm sima -v ${DIR}:/tmp/ debian:latest cp -f /icecast/icecast.xml /tmp/current.icecast.conf.xml
15 }
16
17 log_icecast () {
18     # Monitor logs
19     docker exec -ti sima /usr/bin/tail -F /var/log/icecast2/access.log /var/log/icecast2/error.log
20 }
21
22 build () {
23     # Build image with icecast
24     docker build -t kaliko/sima ${DIR}/sima
25 }
26
27 log () {
28     if [ "$(docker inspect --format='{{.State.Running}}' sima)" = "true" ]; then
29         docker logs -f sima
30     fi
31 }
32
33 stop () {
34     docker stop -t 3 sima
35 }
36
37 inspect () {
38     docker port sima | awk '$1 ~ "6600/tcp" { printf "MPD running on: %s\n", $3 }'
39     docker port sima | awk '$1 ~ "8000/tcp" { printf "HTTP running on: http://%s\n", $3 }'
40 }
41
42 run () {
43     # Start
44     IS_RUNNING=$(docker inspect --format='{{.State.Running}}' sima)
45     case $IS_RUNNING in
46         true)
47             echo 'Already running container'
48             ;;
49         false)
50             echo 'running the current sima container'
51             docker start sima
52             ;;
53         else)
54             test -z "${MUSIC}" && { echo "Need a music directory to mount please set MUSIC var"; exit 1; }
55             echo 'launching a new sima container'
56             local options="-p ${LISTEN}:${ICE_PORT}:8000"
57             options="${options} -p ${LISTEN}:${MPD_PORT}:6600"
58             options="${options} --volume ${MUSIC}:/var/lib/mpd/music:ro"
59             docker run ${options} --detach=true --name sima kaliko/sima
60             ;;
61     esac
62 }
63
64 $@