Escape XML values and simplify Unraid template config entries
This commit is contained in:
parent
44c7f8bcf9
commit
1f75bb76de
1 changed files with 37 additions and 12 deletions
|
|
@ -25,6 +25,28 @@ LIDARR_ROOT_FOLDER="${LIDARR_ROOT_FOLDER:-/music}"
|
|||
LIDARR_QUALITY_PROFILE_ID="${LIDARR_QUALITY_PROFILE_ID:-1}"
|
||||
LIDARR_METADATA_PROFILE_ID="${LIDARR_METADATA_PROFILE_ID:-1}"
|
||||
|
||||
xml_escape() {
|
||||
local s="${1:-}"
|
||||
s="${s//&/&}"
|
||||
s="${s//</<}"
|
||||
s="${s//>/>}"
|
||||
s="${s//\"/"}"
|
||||
s="${s//\'/'}"
|
||||
printf '%s' "${s}"
|
||||
}
|
||||
|
||||
HOST_PORT_ESCAPED="$(xml_escape "${HOST_PORT}")"
|
||||
APPDATA_PATH_ESCAPED="$(xml_escape "${APPDATA_PATH}")"
|
||||
MUSIC_PATH_ESCAPED="$(xml_escape "${MUSIC_PATH}")"
|
||||
TZ_VALUE_ESCAPED="$(xml_escape "${TZ_VALUE}")"
|
||||
SPOTIFY_CLIENT_ID_ESCAPED="$(xml_escape "${SPOTIFY_CLIENT_ID}")"
|
||||
SPOTIFY_CLIENT_SECRET_ESCAPED="$(xml_escape "${SPOTIFY_CLIENT_SECRET}")"
|
||||
LIDARR_URL_ESCAPED="$(xml_escape "${LIDARR_URL}")"
|
||||
LIDARR_API_KEY_ESCAPED="$(xml_escape "${LIDARR_API_KEY}")"
|
||||
LIDARR_ROOT_FOLDER_ESCAPED="$(xml_escape "${LIDARR_ROOT_FOLDER}")"
|
||||
LIDARR_QUALITY_PROFILE_ID_ESCAPED="$(xml_escape "${LIDARR_QUALITY_PROFILE_ID}")"
|
||||
LIDARR_METADATA_PROFILE_ID_ESCAPED="$(xml_escape "${LIDARR_METADATA_PROFILE_ID}")"
|
||||
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
echo "Fehler: docker wurde nicht gefunden."
|
||||
exit 1
|
||||
|
|
@ -61,24 +83,27 @@ cat > "${TEMPLATE_PATH}" <<EOF
|
|||
<ExtraParams/>
|
||||
<PostArgs/>
|
||||
<CPUset/>
|
||||
<DateInstalled>$(date +%s)</DateInstalled>
|
||||
<DonateText/>
|
||||
<DonateLink/>
|
||||
<Description>Spotify Albumsuche, Track-Auswahl und Uebergabe an Lidarr.</Description>
|
||||
<Config Name="WebUI Port" Target="3000" Default="3000" Mode="tcp" Description="Port fuer das Frontend" Type="Port" Display="always" Required="true" Mask="false">${HOST_PORT}</Config>
|
||||
<Config Name="AppData Path" Target="/config" Default="/mnt/user/appdata/lidarr-spotify-frontend" Mode="rw" Description="Container Path: /config" Type="Path" Display="always" Required="true" Mask="false">${APPDATA_PATH}</Config>
|
||||
<Config Name="Music Path (optional)" Target="/music" Default="/mnt/user/music" Mode="rw" Description="Container Path: /music (optional)" Type="Path" Display="advanced" Required="false" Mask="false">${MUSIC_PATH}</Config>
|
||||
<Config Name="Timezone" Target="TZ" Default="Europe/Berlin" Mode="" Description="Container Timezone" Type="Variable" Display="advanced" Required="false" Mask="false">${TZ_VALUE}</Config>
|
||||
<Config Name="Spotify Client ID" Target="SPOTIFY_CLIENT_ID" Default="" Mode="" Description="Spotify API Client ID" Type="Variable" Display="always" Required="true" Mask="false">${SPOTIFY_CLIENT_ID}</Config>
|
||||
<Config Name="Spotify Client Secret" Target="SPOTIFY_CLIENT_SECRET" Default="" Mode="" Description="Spotify API Client Secret" Type="Variable" Display="always" Required="true" Mask="true">${SPOTIFY_CLIENT_SECRET}</Config>
|
||||
<Config Name="Lidarr URL" Target="LIDARR_URL" Default="http://lidarr:8686" Mode="" Description="URL deines Lidarr Servers" Type="Variable" Display="always" Required="true" Mask="false">${LIDARR_URL}</Config>
|
||||
<Config Name="Lidarr API Key" Target="LIDARR_API_KEY" Default="" Mode="" Description="Lidarr API Key" Type="Variable" Display="always" Required="true" Mask="true">${LIDARR_API_KEY}</Config>
|
||||
<Config Name="Lidarr Root Folder" Target="LIDARR_ROOT_FOLDER" Default="/music" Mode="" Description="Muss in Lidarr existieren" Type="Variable" Display="always" Required="true" Mask="false">${LIDARR_ROOT_FOLDER}</Config>
|
||||
<Config Name="Lidarr Quality Profile ID" Target="LIDARR_QUALITY_PROFILE_ID" Default="1" Mode="" Description="Quality Profile ID aus Lidarr" Type="Variable" Display="advanced" Required="true" Mask="false">${LIDARR_QUALITY_PROFILE_ID}</Config>
|
||||
<Config Name="Lidarr Metadata Profile ID" Target="LIDARR_METADATA_PROFILE_ID" Default="1" Mode="" Description="Metadata Profile ID aus Lidarr" Type="Variable" Display="advanced" Required="true" Mask="false">${LIDARR_METADATA_PROFILE_ID}</Config>
|
||||
<Config Name="WebUI Port" Target="3000" Default="3000" Mode="tcp" Description="Container Port: 3000" Type="Port" Display="always" Required="true" Mask="false">${HOST_PORT_ESCAPED}</Config>
|
||||
<Config Name="AppData Path" Target="/config" Default="/mnt/user/appdata/lidarr-spotify-frontend" Mode="rw" Description="Container Path: /config" Type="Path" Display="always" Required="true" Mask="false">${APPDATA_PATH_ESCAPED}</Config>
|
||||
<Config Name="Music Path (optional)" Target="/music" Default="/mnt/user/music" Mode="rw" Description="Container Path: /music" Type="Path" Display="advanced" Required="false" Mask="false">${MUSIC_PATH_ESCAPED}</Config>
|
||||
<Config Name="Timezone" Target="TZ" Default="Europe/Berlin" Mode="" Description="Container Variable: TZ" Type="Variable" Display="advanced" Required="false" Mask="false">${TZ_VALUE_ESCAPED}</Config>
|
||||
<Config Name="Spotify Client ID" Target="SPOTIFY_CLIENT_ID" Default="" Mode="" Description="Container Variable: SPOTIFY_CLIENT_ID" Type="Variable" Display="always" Required="true" Mask="false">${SPOTIFY_CLIENT_ID_ESCAPED}</Config>
|
||||
<Config Name="Spotify Client Secret" Target="SPOTIFY_CLIENT_SECRET" Default="" Mode="" Description="Container Variable: SPOTIFY_CLIENT_SECRET" Type="Variable" Display="always" Required="true" Mask="true">${SPOTIFY_CLIENT_SECRET_ESCAPED}</Config>
|
||||
<Config Name="Lidarr URL" Target="LIDARR_URL" Default="http://lidarr:8686" Mode="" Description="Container Variable: LIDARR_URL" Type="Variable" Display="always" Required="true" Mask="false">${LIDARR_URL_ESCAPED}</Config>
|
||||
<Config Name="Lidarr API Key" Target="LIDARR_API_KEY" Default="" Mode="" Description="Container Variable: LIDARR_API_KEY" Type="Variable" Display="always" Required="true" Mask="true">${LIDARR_API_KEY_ESCAPED}</Config>
|
||||
<Config Name="Lidarr Root Folder" Target="LIDARR_ROOT_FOLDER" Default="/music" Mode="" Description="Container Variable: LIDARR_ROOT_FOLDER" Type="Variable" Display="always" Required="true" Mask="false">${LIDARR_ROOT_FOLDER_ESCAPED}</Config>
|
||||
<Config Name="Lidarr Quality Profile ID" Target="LIDARR_QUALITY_PROFILE_ID" Default="1" Mode="" Description="Container Variable: LIDARR_QUALITY_PROFILE_ID" Type="Variable" Display="advanced" Required="true" Mask="false">${LIDARR_QUALITY_PROFILE_ID_ESCAPED}</Config>
|
||||
<Config Name="Lidarr Metadata Profile ID" Target="LIDARR_METADATA_PROFILE_ID" Default="1" Mode="" Description="Container Variable: LIDARR_METADATA_PROFILE_ID" Type="Variable" Display="advanced" Required="true" Mask="false">${LIDARR_METADATA_PROFILE_ID_ESCAPED}</Config>
|
||||
</Container>
|
||||
EOF
|
||||
|
||||
if command -v xmllint >/dev/null 2>&1; then
|
||||
xmllint --noout "${TEMPLATE_PATH}"
|
||||
fi
|
||||
|
||||
echo "==> Fertig"
|
||||
echo "Image: ${IMAGE}"
|
||||
echo "Template: ${TEMPLATE_PATH}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue