Skip to content

Commit

Permalink
WIP - update snapcast
Browse files Browse the repository at this point in the history
  • Loading branch information
raph2i committed Feb 23, 2020
1 parent e301279 commit b196b67
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 11 deletions.
2 changes: 1 addition & 1 deletion snapserver/Dockerfile
Expand Up @@ -5,7 +5,7 @@ FROM $BUILD_FROM
ENV LANG C.UTF-8

#Install snapcast
RUN apk add --no-cache snapcast jq bash
RUN sed -i -e 's/v[[:digit:]]\..*\//edge\//g' /etc/apk/repositories && apk add --no-cache snapcast bash

# Copy data for add-on
COPY run.sh /
Expand Down
46 changes: 42 additions & 4 deletions snapserver/config.json
@@ -1,17 +1,55 @@
{
"name": "snapcast-server",
"version": "beta",
"version": "latest",
"slug": "snapcastserver",
"description": "Snapcast server",
"startup": "system",
"boot": "auto",
"map": ["share:rw"],
"options": {
"snapserveropts": "-d -s pipe:///share/snapfifo/librespot?name=SpotifyConnect&sampleformat=44100:16:2"
"stream": {
"streams": ["pipe:///share/snapfifo/librespot?name=SpotifyConnect&sampleformat=44100:16:2", "pipe:///share/snapfifo/mopidy?name=Mopidy&sampleformat=44100:16:2"],
"buffer": "1000",
"codec": "flac",
"send_to_muted": "false",
"sampleformat": "48000:16:2"
},
"http": {
"enabled": "true",
"doc_root": " "
},
"tcp": {
"enabled": "true"
},
"logging": {
"enabled": "true"
},
"server": {
"threads": "-1"
}
},
"schema": {
"snapserveropts": "str"
"stream": {
"streams": ["str"],
"buffer": "int",
"codec": "str",
"send_to_muted": "str",
"sampleformat": "str"
},
"http": {
"enabled": "str",
"doc_root": "str"
},
"tcp": {
"enabled": "str"
},
"logging": {
"enabled": "str"
},
"server": {
"threads": "int"
}
},
"ports": {"1704/tcp": 1704, "1705/tcp": 1705},
"ports": {"1704/tcp": 1704, "1705/tcp": 1705, "1780/tcp": 1780},
"arch": ["armhf", "armv7", "aarch64", "amd64", "i386"]
}
51 changes: 45 additions & 6 deletions snapserver/run.sh
@@ -1,10 +1,49 @@
#!/bin/bash
#!/usr/bin/env bashio
#bashio::log.info "Version..."
#/usr/bin/snapserver -v

CONFIG_PATH=/data/options.json
mkdir -p /share/snapfifo

SNAPSERVER_OPTS=$(jq --raw-output ".snapserveropts" $CONFIG_PATH)
#bashio::log.info "Resetting server.json..."
#mkdir -p /var/lib/snapserver
#rm -f /var/lib/snapserver/server.json
#touch /var/lib/snapserver/server.json
#echo '{"ConfigVersion":2,"Groups":[]}' > /var/lib/snapserver/server.json

mkdir -p /share/snapfifo
config=/etc/snapserver.conf

if ! bashio::fs.file_exists '/etc/snapserver.conf'; then
touch /etc/snapserver.conf ||
bashio::exit.nok "Could not create snapserver.conf file on filesystem"
fi
bashio::log.info "Populating snapserver.conf..."

# Start creation of configuration

echo "[stream]" > "${config}"
for stream in $(bashio::config 'stream.streams'); do
echo "stream = ${stream}" >> "${config}"
done
echo "buffer = $(bashio::config 'stream.buffer')" >> "${config}"
echo "codec = $(bashio::config 'stream.codec')" >> "${config}"
echo "send_to_muted = $(bashio::config 'stream.send_to_muted')" >> "${config}"
echo "sampleformat = $(bashio::config 'stream.sampleformat')" >> "${config}"

echo "[http]" >> "${config}"
echo "enabled = $(bashio::config 'http.enabled')" >> "${config}"
echo "doc_root = $(bashio::config 'http.docroot')" >> "${config}"

echo "[tcp]" >> "${config}"
echo "enabled = $(bashio::config 'tcp.enabled')" >> "${config}"

echo "[logging]" >> "${config}"
echo "debug = $(bashio::config 'logging.enabled')" >> "${config}"

echo "[server]" >> "${config}"
echo "threads = $(bashio::config 'server.threads')" >> "${config}"

bashio::log.info "Starting SnapServer..."

cat /etc/snapserver.conf

echo "Start Snapserver..."
/usr/bin/snapserver ${SNAPSERVER_OPTS}
/usr/bin/snapserver -d -c /etc/snapserver.conf

0 comments on commit b196b67

Please sign in to comment.