mirror of
https://github.com/gilbN/theme.park.git
synced 2024-10-04 14:37:14 +02:00
159 lines
5.4 KiB
Plaintext
Executable File
159 lines
5.4 KiB
Plaintext
Executable File
#!/command/with-contenv bash
|
|
|
|
echo '------------------------------'
|
|
echo '| qBittorrent theme.park Mod |'
|
|
echo '------------------------------'
|
|
|
|
APP_FILEPATH='/config/qBittorrent/qBittorrent.conf'
|
|
if [ "${TP_HOTIO}" = true ]; then
|
|
echo 'Changing to Hotio file path!'
|
|
APP_FILEPATH='/config/config/qBittorrent.conf'
|
|
fi
|
|
|
|
# Backup config
|
|
if [[ ! -f "${APP_FILEPATH}.bak" ]]; then
|
|
echo "Creating qBittorrent.conf backup in /config."
|
|
cp -p ${APP_FILEPATH} "${APP_FILEPATH}.bak"
|
|
fi
|
|
|
|
# Restore qBittorrent.conf
|
|
if [ "${TP_DISABLE_THEME}" = true ]; then
|
|
echo "Restoring backup of qBittorrent.conf"
|
|
sed -i "s/WebUI\\\AlternativeUIEnabled=.*$/WebUI\\\AlternativeUIEnabled=false/g" "${APP_FILEPATH}";
|
|
exit 0
|
|
fi
|
|
|
|
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
|
|
echo 'QBITTORRENT_VERSION not set. Using the latest stable.'
|
|
QBITTORRENT_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
|
|
&& awk '/^P:qbittorrent-nox$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://' | sed 's/-.*//'); \
|
|
fi
|
|
|
|
if ! [[ -x "$(command -v git)" ]]; then
|
|
echo '--------------------------'
|
|
echo '| Installing git package |'
|
|
echo '--------------------------'
|
|
if [ -x "$(command -v apk)" ]; then
|
|
apk update && \
|
|
apk add --no-cache git
|
|
apk add --no-cache perl
|
|
elif [ -x "$(command -v apt-get)" ]; then
|
|
apt-get update && \
|
|
apt-get install -y git
|
|
apt-get install -y perl
|
|
fi
|
|
fi
|
|
|
|
# Display variables for troubleshooting
|
|
echo -e "Variables set:\\n\
|
|
'APP_FILEPATH'=${APP_FILEPATH}\\n\
|
|
'TP_DISABLE_THEME'=${TP_DISABLE_THEME}\\n\
|
|
'TP_HOTIO'=${TP_HOTIO}\\n\
|
|
'TP_DOMAIN'=${TP_DOMAIN}\\n\
|
|
'TP_COMMUNITY_THEME'=${TP_COMMUNITY_THEME}\\n\
|
|
'TP_SCHEME'=${TP_SCHEME}\\n\
|
|
'QBITTORRENT_VERSION'=${QBITTORRENT_VERSION}\\n\
|
|
'TP_THEME'=${TP_THEME}\\n"
|
|
|
|
# Set default
|
|
if [[ -z ${TP_DOMAIN} ]]; then
|
|
echo 'No domain set, defaulting to theme-park.dev'
|
|
TP_DOMAIN='theme-park.dev'
|
|
fi
|
|
if [[ -z ${TP_SCHEME} ]]; then
|
|
echo 'No scheme set, defaulting to https'
|
|
TP_SCHEME='https'
|
|
fi
|
|
|
|
THEME_TYPE='theme-options'
|
|
if [ "${TP_COMMUNITY_THEME}" = true ]; then
|
|
THEME_TYPE='community-theme-options'
|
|
fi
|
|
|
|
case ${TP_DOMAIN} in
|
|
*"github.io"*)
|
|
echo "Switching to github.io URL style"
|
|
TP_DOMAIN="${TP_DOMAIN}\/theme.park"
|
|
;;
|
|
esac
|
|
|
|
if [[ -z ${TP_THEME} ]]; then
|
|
echo 'No theme set, defaulting to organizr'
|
|
TP_THEME='organizr'
|
|
fi
|
|
|
|
# Downloading fresh webui files from source.
|
|
if [[ ! -d /themepark ]]; then
|
|
echo '---------------------------------------'
|
|
echo '| Downloading WebUI files from github |'
|
|
echo '---------------------------------------'
|
|
printf '\nDownloading qBittorrent to /temp\n'
|
|
echo 'Downloading WebUI for version:' "${QBITTORRENT_VERSION}"
|
|
git clone --depth 1 -b release-${QBITTORRENT_VERSION} https://github.com/qbittorrent/qBittorrent /temp
|
|
|
|
printf '\nDownload finished\n\n'
|
|
cp -a /temp/src/webui/www /themepark
|
|
cp -a /temp/src/icons/. /themepark/public/icons
|
|
cp -a /temp/src/icons/. /themepark/private/icons
|
|
printf '\nCopy finished\n\n'
|
|
rm -rf /temp
|
|
rm -rf /tmp/*
|
|
printf '\nCleanup finished\n\n'
|
|
fi
|
|
|
|
sed_file(){
|
|
sed -i "s/<\/body>/<link rel='stylesheet' href='${TP_SCHEME}:\/\/${TP_DOMAIN}\/css\/base\/qbittorrent\/qbittorrent-base.css'><\/body> /g" $1
|
|
sed -i "s/<\/body>/<link rel='stylesheet' href='${TP_SCHEME}:\/\/${TP_DOMAIN}\/css\/${THEME_TYPE}\/${TP_THEME}.css'><\/body> /g" $1
|
|
printf 'Stylesheet set to %s on %s\n\n' "${TP_THEME}" "$1"
|
|
}
|
|
|
|
clean_file() {
|
|
perl -i -pe 's/QBT_TR?\(//g' "$1"
|
|
perl -i -pe 's/\)QBT_TR\[CONTEXT=.*?\]//g' "$1"
|
|
}
|
|
|
|
if ! grep -q "${TP_DOMAIN}/css/base" /themepark/public/index.html; then
|
|
# Adding stylesheets
|
|
echo '---------------------------------------'
|
|
echo '| Adding the stylesheet to html files |'
|
|
echo '---------------------------------------'
|
|
sed_file /themepark/public/index.html
|
|
clean_file /themepark/public/index.html
|
|
|
|
find /themepark/private -type f -iname "*.html" | while read fname
|
|
do
|
|
sed_file $fname
|
|
done
|
|
fi
|
|
|
|
# Clean all files
|
|
echo '------------------------------------------------------------'
|
|
echo '| Cleaning files in /themepark for any translation text... |'
|
|
echo '------------------------------------------------------------'
|
|
find /themepark -type f \( ! -iname "*.svg" \) | while read fname
|
|
do
|
|
clean_file $fname
|
|
done
|
|
|
|
if ! grep -q "WebUI\\\RootFolder" "${APP_FILEPATH}"; then
|
|
echo '--------------------------------------'
|
|
echo '| Adding WebUI\RootFolder=/themepark |'
|
|
echo '--------------------------------------'
|
|
sed -i -e '$aWebUI\\RootFolder=/themepark' "${APP_FILEPATH}";
|
|
fi
|
|
|
|
if ! grep -q "WebUI\\\AlternativeUIEnabled" "${APP_FILEPATH}"; then
|
|
echo '------------------------------------------'
|
|
echo '| Adding WebUI\AlternativeUIEnabled=true |'
|
|
echo '------------------------------------------'
|
|
sed -i -e '$aWebUI\\AlternativeUIEnabled=true' "${APP_FILEPATH}";
|
|
fi
|
|
|
|
if ! grep -q "WebUI\\\RootFolder=/themepark" "${APP_FILEPATH}" || ! grep -q "WebUI\\\AlternativeUIEnabled=true" "${APP_FILEPATH}"; then
|
|
echo '-------------------------------------------------------'
|
|
echo '| Updating RootFolder and AlternativeUIEnabled values |'
|
|
echo '-------------------------------------------------------'
|
|
sed -i "s/WebUI\\\AlternativeUIEnabled=.*$/WebUI\\\AlternativeUIEnabled=true/g" "${APP_FILEPATH}";
|
|
sed -i "s/WebUI\\\RootFolder=.*$/WebUI\\\RootFolder=\/themepark/g" "${APP_FILEPATH}";
|
|
fi
|