103 lines
4.5 KiB
Bash
103 lines
4.5 KiB
Bash
#!/usr/bin/with-contenv bashio
|
|
# ==============================================================================
|
|
# Home Assistant Community Add-on: TVHeadend
|
|
# Executes user customizations on startup
|
|
# ==============================================================================
|
|
|
|
check_picons(){
|
|
if [ -z "$(ls -A /config/tvheadend/picons)" ]; then return 1; else return 0; fi
|
|
}
|
|
|
|
picons_install(){
|
|
if apk update; then
|
|
bashio::log.info '[Picons] APK: Installing required packages.'
|
|
if apk add --no-cache --virtual .build-deps xz; then
|
|
bashio::log.info '[Picons] Installing Picons.'
|
|
bashio::log.info '[Picons] SNP-Picons Download.'
|
|
wget -O /config/tvheadend/snp.tar.xz $(bashio::config 'snp_url')
|
|
bashio::log.info '[Picons] SRP-Picons Download.'
|
|
wget -O /config/tvheadend/srp.tar.xz $(bashio::config 'srp_url')
|
|
bashio::log.info '[Picons] SNP-Picons extract.'
|
|
mkdir -p /config/tvheadend/picons/snp
|
|
tar -xf /config/tvheadend/snp.tar.xz --strip-components=1 -C /config/tvheadend/picons/snp
|
|
rm /config/tvheadend/snp.tar.xz
|
|
bashio::log.info '[Picons] SRP-Picons extract.'
|
|
mkdir -p /config/tvheadend/picons/srp
|
|
tar -xf /config/tvheadend/srp.tar.xz --strip-components=1 -C /config/tvheadend/picons/srp
|
|
rm /config/tvheadend/srp.tar.xz
|
|
bashio::log.info '[Picons] Update config.'
|
|
sed -i 's|.*chiconpath.*| "chiconpath": "file:///config/tvheadend/picons/snp/%C.png",|g' /config/tvheadend/config
|
|
sed -i 's|.*piconpath.*| "piconpath": "file:///config/tvheadend/picons/srp",|g' /config/tvheadend/config
|
|
fi
|
|
fi
|
|
}
|
|
|
|
check_webgrabplus(){
|
|
if [ -z "$(ls -A /config/tvheadend/wg++)" ]; then return 1; else return 0; fi
|
|
}
|
|
|
|
webgrabplus_install(){
|
|
if apk update; then
|
|
bashio::log.info '[Webgrab+] APK: Installing required packages.'
|
|
if apk add --no-cache --virtual .build-deps git mono --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing; then
|
|
bashio::log.info '[Webgrab+] Installing Webgrab+.'
|
|
cd /tmp \
|
|
&& wget http://webgrabplus.com/sites/default/files/download/SW/V3.2.0/WebGrabPlus_V3.2_install.tar.gz \
|
|
&& tar -zxvf WebGrabPlus_V3.2_install.tar.gz \
|
|
&& rm WebGrabPlus_V3.2_install.tar.gz \
|
|
&& mv .wg++/ /config/tvheadend/wg++ \
|
|
&& cd /config/tvheadend/wg++ \
|
|
&& ./install.sh \
|
|
&& rm -rf siteini.pack/ \
|
|
&& wget http://webgrabplus.com/sites/default/files/download/ini/SiteIniPack_current.zip \
|
|
&& unzip SiteIniPack_current.zip \
|
|
&& rm SiteIniPack_current.zip \
|
|
&& cp siteini.pack/India/* siteini.user/ \
|
|
&& wget -O /usr/bin/tv_grab_wg++ http://www.webgrabplus.com/sites/default/files/tv_grab_wg.txt \
|
|
&& sed -i 's|~/.wg++/guide.xml|/config/tvheadend/wg++/guide.xml|g' /usr/bin/tv_grab_wg++ \
|
|
&& chmod a+x /usr/bin/tv_grab_wg++
|
|
else
|
|
bashio::log.info '[Webgrab+] APK: Critical error. Unable install required packages.'
|
|
exit 1
|
|
fi
|
|
bashio::log.info '[Webgrab+] APK: Removing packages no longer required.'
|
|
apk del --no-cache --purge .build-deps
|
|
else
|
|
bashio::log.error '[Webgrab+] APK: Critical error. Unable to update pkg list. Check connectivity.'
|
|
exit 1
|
|
fi
|
|
bashio::log.info '[Webgrab+] Finsihed all APK and PIP3 updates and installs.'
|
|
}
|
|
|
|
# Ensure directory exists
|
|
if ! bashio::fs.directory_exists '/config/tvheadend/'; then
|
|
bashio::log.info "Creating default configuration directory at /config/tvheadend/"
|
|
timeout 20s /usr/bin/tvheadend --firstrun -u root -g root -c /config/tvheadend
|
|
fi
|
|
|
|
if check_picons; then
|
|
bashio::log.info "[Picons] Picons already installed"
|
|
else
|
|
bashio::log.info "[Picons] No Picons installation found"
|
|
if [ $(bashio::config 'picons') = true ]; then
|
|
bashio::log.info "[Picons] Installing Picons"
|
|
picons_install
|
|
chmod +x /usr/bin/restart_addon
|
|
exec /usr/bin/restart_addon
|
|
fi
|
|
fi
|
|
|
|
if check_webgrabplus; then
|
|
bashio::log.info "[Webgrab+] Webgrab+ already installed"
|
|
else
|
|
bashio::log.info "[Webgrab+] No webgrab+ installation found"
|
|
if [ $(bashio::config 'webgrabplus') = true ]; then
|
|
bashio::log.info "[Webgrab+] Installing webgrab+"
|
|
webgrabplus_install
|
|
chmod +x /usr/bin/restart_addon
|
|
exec /usr/bin/restart_addon
|
|
fi
|
|
fi
|
|
|
|
bashio::log.info 'Setup completed without errors!!'
|