From 99ae3fc3b1cbd0965d32c545390b43149118b59c Mon Sep 17 00:00:00 2001 From: CvH <1355173+CvH@users.noreply.github.com> Date: Sat, 6 Jul 2024 13:01:44 +0200 Subject: [PATCH] cleanup scripts: package/addons/ --- .../chrome/source/bin/chrome-downloader | 6 +-- .../browser/chrome/source/bin/chrome-start | 51 ++++++++++--------- .../hdhomerun/source/bin/userspace-driver.sh | 42 ++++++++------- .../service/docker/source/bin/docker-config | 2 +- .../service/inadyn/source/bin/inadyn-service | 20 ++++---- .../jellyfin/source/bin/jellyfin-downloader | 8 +-- .../jellyfin/source/bin/jellyfin-start | 4 +- .../nextpvr/source/bin/nextpvr-downloader | 2 +- .../syncthing/source/bin/syncthing-service | 14 ++--- .../service/touchscreen/source/bin/ts_env.sh | 6 +-- .../tvheadend42/source/bin/tv_grab_file | 25 ++++----- .../tvheadend43/source/bin/tv_grab_file | 25 ++++----- 12 files changed, 103 insertions(+), 102 deletions(-) diff --git a/packages/addons/browser/chrome/source/bin/chrome-downloader b/packages/addons/browser/chrome/source/bin/chrome-downloader index 375bf3bf00..48d26089ac 100755 --- a/packages/addons/browser/chrome/source/bin/chrome-downloader +++ b/packages/addons/browser/chrome/source/bin/chrome-downloader @@ -14,7 +14,7 @@ CHROME_FILE="google-chrome-stable_@CHROME_VERSION@-1_amd64.deb" # check for enough free disk space if [ $(df -P . | awk 'END {print $4}') -lt 400000 ]; then kodi-send --action="Notification(Not enough disk space, at least 400MB are required,30000,${ICON})" >/dev/null - exit 0; + exit 0 fi # remove install status and folders @@ -41,9 +41,9 @@ rm -f ${CONTROL_FILE} ${DATA_FILE} ( curl -# -O -C - https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/${CHROME_FILE} 2>${DATA_FILE} touch ${CONTROL_FILE} -) | \ +) | while [ : ]; do - [ -f ${DATA_FILE} ] && prog="$(tr '\r' '\n' < ${DATA_FILE} | tail -n 1 | sed -r 's/^[# ]+/#/;s/^[^0-9]*//g')" || prog= + [ -f ${DATA_FILE} ] && prog="$(tr '\r' '\n' <${DATA_FILE} | tail -n 1 | sed -r 's/^[# ]+/#/;s/^[^0-9]*//g')" || prog= kodi-send --action="Notification(Downloading Chrome,\"${prog:-0.0%}\",3000,${ICON})" >/dev/null [ -f ${CONTROL_FILE} ] && break sleep 4 diff --git a/packages/addons/browser/chrome/source/bin/chrome-start b/packages/addons/browser/chrome/source/bin/chrome-start index ddc79c0fb4..350d8d9893 100755 --- a/packages/addons/browser/chrome/source/bin/chrome-start +++ b/packages/addons/browser/chrome/source/bin/chrome-start @@ -12,8 +12,7 @@ if [ ! -f "$ADDON_DIR/extract.ok" ]; then chrome-downloader fi -if [ -e $ADDON_HOME/env ] -then +if [ -e $ADDON_HOME/env ]; then . $ADDON_HOME/env fi @@ -32,8 +31,7 @@ export GDK_PIXBUF_MODULE_FILE=$ADDON_DIR/config/pixbuf.loaders.cache export XENVIRONMENT=$ADDON_DIR/config/Xdefaults # start unclutter -if [ "$HIDE_CURSOR" == "true" ] -then +if [ "$HIDE_CURSOR" == "true" ]; then unclutter & UNCLUTTER_PID=$! fi @@ -43,33 +41,42 @@ LIBVA_DRIVERS_PATH="/usr/lib/dri:$ADDON_DIR/lib.private" LIBVA_DRIVER_NAME='' case $VAAPI_MODE in 'intel') - LIBVA_DRIVER_NAME='i965' - chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder" - ;; + LIBVA_DRIVER_NAME='i965' + chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder" + ;; 'amd') - LIBVA_DRIVER_NAME='vdpau' - chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder" - ;; + LIBVA_DRIVER_NAME='vdpau' + chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder" + ;; 'nvidia') - LIBVA_DRIVER_NAME='vdpau' - chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder --allow-no-sandbox-job --disable-gpu-sandbox" - ;; + LIBVA_DRIVER_NAME='vdpau' + chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder --allow-no-sandbox-job --disable-gpu-sandbox" + ;; *) - LIBGL_ALWAYS_SOFTWARE='1' - export LIBGL_ALWAYS_SOFTWARE + LIBGL_ALWAYS_SOFTWARE='1' + export LIBGL_ALWAYS_SOFTWARE + ;; esac export LIBVA_DRIVER_NAME LIBVA_DRIVERS_PATH # windowed case $WINDOW_MODE in - 'maximized') chrome_OPTS="$chrome_OPTS --start-maximized";; - 'kiosk') chrome_OPTS="$chrome_OPTS --kiosk";; + 'maximized') + chrome_OPTS="$chrome_OPTS --start-maximized" + ;; + 'kiosk') + chrome_OPTS="$chrome_OPTS --kiosk" + ;; esac # rasterization case $RASTER_MODE in - 'off') chrome_OPTS="$chrome_OPTS --disable-accelerated-2d-canvas --disable-gpu-compositing";; - 'force') chrome_OPTS="$chrome_OPTS --enable-gpu-rasterization --enable-accelerated-2d-canvas --ignore-gpu-blacklist";; + 'off') + chrome_OPTS="$chrome_OPTS --disable-accelerated-2d-canvas --disable-gpu-compositing" + ;; + 'force') + chrome_OPTS="$chrome_OPTS --enable-gpu-rasterization --enable-accelerated-2d-canvas --ignore-gpu-blacklist" + ;; esac # alsa @@ -82,8 +89,7 @@ if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then fi # dark mode -if [ "$DARK_MODE" == "true" ] -then +if [ "$DARK_MODE" == "true" ]; then chrome_OPTS="$chrome_OPTS --force-dark-mode" fi @@ -102,8 +108,7 @@ LD_PRELOAD=/usr/lib/libGL.so $ADDON_DIR/chrome-bin/chrome \ 2>&1 | tee $ADDON_LOG_FILE # kill unclutter -if [ "$HIDE_CURSOR" == "true" ] -then +if [ "$HIDE_CURSOR" == "true" ]; then kill $UNCLUTTER_PID fi diff --git a/packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh b/packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh index 2acb365ce1..c405a8818d 100644 --- a/packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh +++ b/packages/addons/driver/hdhomerun/source/bin/userspace-driver.sh @@ -9,9 +9,15 @@ HDHR_LOCKFILE="/var/lock/userspace-driver-hdhomerun.lck" HDHR_LOCKFD=99 # obtain an exclusive lock -exlock() { eval "exec $HDHR_LOCKFD>\"$HDHR_LOCKFILE\""; flock -x $HDHR_LOCKFD; } +exlock() { + eval "exec $HDHR_LOCKFD>\"$HDHR_LOCKFILE\"" + flock -x $HDHR_LOCKFD +} # drop a lock -unlock() { flock -u $HDHR_LOCKFD; flock -xn $HDHR_LOCKFD && rm -f "$HDHR_LOCKFILE"; } +unlock() { + flock -u $HDHR_LOCKFD + flock -xn $HDHR_LOCKFD && rm -f "$HDHR_LOCKFILE" +} # end locking mechanism # exclusive lock @@ -40,9 +46,9 @@ mkdir -p /var/config # check settings version XML_SETTINGS_VER="$(xmlstarlet sel -t -m settings -v @version $HDHR_ADDON_SETTINGS)" if [ "$XML_SETTINGS_VER" = "2" ]; then - xmlstarlet sel -t -m settings/setting -v @id -o "=\"" -v . -o "\"" -n "$HDHR_ADDON_SETTINGS" > /var/config/hdhomerun-addon.conf + xmlstarlet sel -t -m settings/setting -v @id -o "=\"" -v . -o "\"" -n "$HDHR_ADDON_SETTINGS" >/var/config/hdhomerun-addon.conf else - xmlstarlet sel -t -m settings -m setting -v @id -o "=\"" -v @value -o "\"" -n "$HDHR_ADDON_SETTINGS" > /var/config/hdhomerun-addon.conf + xmlstarlet sel -t -m settings -m setting -v @id -o "=\"" -v @value -o "\"" -n "$HDHR_ADDON_SETTINGS" >/var/config/hdhomerun-addon.conf fi . /var/config/hdhomerun-addon.conf @@ -63,8 +69,8 @@ if [ -z "$(pidof userhdhomerun)" ]; then DISABLE=$(eval echo \$ATTACHED_TUNER_${SERIAL_UNIQ}_DISABLE) NUMBERS=$(eval echo \$ATTACHED_TUNER_${SERIAL_UNIQ}_NUMBERS) - NUMBERS=$(( $NUMBERS -1 )) - NUMBERS=$(( $NUMBERS *1 )) + NUMBERS=$(($NUMBERS - 1)) + NUMBERS=$(($NUMBERS * 1)) for i in $(seq 0 $NUMBERS); do SERIAL="$SERIAL_UNIQ-$i" @@ -104,7 +110,7 @@ if [ -z "$(pidof userhdhomerun)" ]; then sed -i -e ':a' -e '/^\n*$/{$d;N;};/\n$/ba' $DVBHDHOMERUN_CONF_TMP if [ "$LIBHDHOMERUN_LOG" = "true" ]; then - cat >>$DVBHDHOMERUN_CONF_TMP << EOF + cat >>$DVBHDHOMERUN_CONF_TMP </dev/null) - sn_new=$(grep "Name of device: " /var/log/dvbhdhomerun.log) - if [ "$sn_old" != "$sn_new" ]; then - echo -n $sn_new >$HDHR_ADDON_HOME/adapters.txt - fi -)& + # save adapter names in background + ( + sleep 4 + sn_old=$(cat $HDHR_ADDON_HOME/adapters.txt 2>/dev/null) + sn_new=$(grep "Name of device: " /var/log/dvbhdhomerun.log) + if [ "$sn_old" != "$sn_new" ]; then + echo -n $sn_new >$HDHR_ADDON_HOME/adapters.txt + fi + ) & fi logger -t HDHomeRun "### HDHomeRun ready ###" diff --git a/packages/addons/service/docker/source/bin/docker-config b/packages/addons/service/docker/source/bin/docker-config index 1b1d133d29..44c5935b49 100755 --- a/packages/addons/service/docker/source/bin/docker-config +++ b/packages/addons/service/docker/source/bin/docker-config @@ -16,7 +16,7 @@ if [ ! -f "$ADDON_HOME_DIR/config/docker.conf" ]; then else # previous deprecated options before v23.0.0 need to be updated sed -i -e 's/--storage-opt overlay2.override_kernel_check=1//' \ - -e 's/--graph=/--data-root=/' $ADDON_HOME_DIR/config/docker.conf + -e 's/--graph=/--data-root=/' $ADDON_HOME_DIR/config/docker.conf fi if [ ! -d "$ADDON_HOME_DIR/docker" ]; then diff --git a/packages/addons/service/inadyn/source/bin/inadyn-service b/packages/addons/service/inadyn/source/bin/inadyn-service index d570d10016..c7e677546d 100644 --- a/packages/addons/service/inadyn/source/bin/inadyn-service +++ b/packages/addons/service/inadyn/source/bin/inadyn-service @@ -4,28 +4,28 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) f="/storage/.kodi/userdata/addon_data/service.system.inadyn/settings.xml" -[ -f "$f" ] && sed -i 's/inadyn_s/inadyn_c/g' "$f" +[ -f "$f" ] && sed -i 's/inadyn_s/inadyn_c/g' "$f" . /etc/profile oe_setup_addon service.system.inadyn if [ "$inadyn_S" == "inadyn.conf" ]; then - config="$ADDON_HOME/inadyn.conf" + config="$ADDON_HOME/inadyn.conf" else - config="$ADDON_HOME/inadyn.temp" - if [ -z "$inadyn_a" -o -z "$inadyn_p" -o -z "$inadyn_u" ]; then - rm -fr "$config" - else - echo "\ + config="$ADDON_HOME/inadyn.temp" + if [ -z "$inadyn_a" -o -z "$inadyn_p" -o -z "$inadyn_u" ]; then + rm -fr "$config" + else + echo "\ provider $inadyn_S { ssl = $inadyn_c username = $inadyn_u password = $inadyn_p hostname = $inadyn_a -}" > "$config" - fi +}" >"$config" + fi fi if [ -f "$config" ]; then - inadyn -f "$config" -l info + inadyn -f "$config" -l info fi diff --git a/packages/addons/service/jellyfin/source/bin/jellyfin-downloader b/packages/addons/service/jellyfin/source/bin/jellyfin-downloader index ceaae3221b..334ac1945f 100644 --- a/packages/addons/service/jellyfin/source/bin/jellyfin-downloader +++ b/packages/addons/service/jellyfin/source/bin/jellyfin-downloader @@ -14,7 +14,7 @@ JELLYFIN_FILE="jellyfin_@JELLYFIN_VERSION@.tar.xz" # check for enough free disk space if [ $(df . | awk 'END {print $4}') -lt 200000 ]; then kodi-send --action="Notification(Not enough disk space, at least 200MB are required,30000,${ICON})" >/dev/null - exit 0; + exit 0 fi # remove install status and folders @@ -27,7 +27,7 @@ if [ -d ${ADDON_DIR}/libs ]; then fi # create tmp download dir -TEMP_DIR=`mktemp -d` +TEMP_DIR=$(mktemp -d) mkdir -p ${TEMP_DIR}/tmp_download if [ -d ${TEMP_DIR}/tmp_download ]; then @@ -44,9 +44,9 @@ rm -f ${CONTROL_FILE} ${DATA_FILE} ( curl -L -# -O -C - https://repo.jellyfin.org/files/server/portable/stable/v@JELLYFIN_VERSION@/any/${JELLYFIN_FILE} 2>${DATA_FILE} touch ${CONTROL_FILE} -) | \ +) | while [ : ]; do - [ -f ${DATA_FILE} ] && prog="$(tr '\r' '\n' < ${DATA_FILE} | tail -n 1 | sed -r 's/^[# ]+/#/;s/^[^0-9]*//g')" || prog= + [ -f ${DATA_FILE} ] && prog="$(tr '\r' '\n' <${DATA_FILE} | tail -n 1 | sed -r 's/^[# ]+/#/;s/^[^0-9]*//g')" || prog= kodi-send --action="Notification(Downloading Jellyfin,\"${prog:-0.0%}\",3000,${ICON})" >/dev/null [ -f ${CONTROL_FILE} ] && break sleep 4 diff --git a/packages/addons/service/jellyfin/source/bin/jellyfin-start b/packages/addons/service/jellyfin/source/bin/jellyfin-start index b38f8c4026..cbc6846ad2 100644 --- a/packages/addons/service/jellyfin/source/bin/jellyfin-start +++ b/packages/addons/service/jellyfin/source/bin/jellyfin-start @@ -15,7 +15,7 @@ libs="${ADDON_DIR}/libs" ff="/storage/.kodi/addons/tools.ffmpeg-tools/bin" exec \ -nice -n "$jellyfin_nice" \ -dotnet "${libs}/jellyfin.dll" \ + nice -n "$jellyfin_nice" \ + dotnet "${libs}/jellyfin.dll" \ --datadir "${ADDON_HOME}" \ --ffmpeg "${ff}/ffmpeg" diff --git a/packages/addons/service/nextpvr/source/bin/nextpvr-downloader b/packages/addons/service/nextpvr/source/bin/nextpvr-downloader index 64ed30b859..29d7a8e9a8 100644 --- a/packages/addons/service/nextpvr/source/bin/nextpvr-downloader +++ b/packages/addons/service/nextpvr/source/bin/nextpvr-downloader @@ -40,7 +40,7 @@ echo "Downloading NextPVR" # download NextPVR rm -f ${CONTROL_FILE} ${DATA_FILE} ( - curl -L -# -O -C - https://github.com/sub3/releases/releases/download/${NEXTPVR_VERSION%~*}/${NEXTPVR_FILE} 2>${DATA_FILE} + curl -L -# -O -C - https://github.com/sub3/releases/releases/download/${NEXTPVR_VERSION%~*}/${NEXTPVR_FILE} 2>${DATA_FILE} touch ${CONTROL_FILE} ) | while [ : ]; do diff --git a/packages/addons/service/syncthing/source/bin/syncthing-service b/packages/addons/service/syncthing/source/bin/syncthing-service index ad8dc3760b..00c7e0b5a8 100644 --- a/packages/addons/service/syncthing/source/bin/syncthing-service +++ b/packages/addons/service/syncthing/source/bin/syncthing-service @@ -6,10 +6,10 @@ . /etc/profile oe_setup_addon service.system.syncthing -STNODEFAULTFOLDER="1" syncthing -home=$ADDON_HOME \ - -gui-address="$gui_address" \ - -logflags=0 \ - -no-browser \ - -no-restart \ - & - +STNODEFAULTFOLDER="1" syncthing \ + -home=$ADDON_HOME \ + -gui-address="$gui_address" \ + -logflags=0 \ + -no-browser \ + -no-restart \ + & diff --git a/packages/addons/service/touchscreen/source/bin/ts_env.sh b/packages/addons/service/touchscreen/source/bin/ts_env.sh index 0c7219145a..cef201ca19 100644 --- a/packages/addons/service/touchscreen/source/bin/ts_env.sh +++ b/packages/addons/service/touchscreen/source/bin/ts_env.sh @@ -21,7 +21,7 @@ if [ -f $ADDON_HOME/ts_env.sh ]; then if [ ! -x $ADDON_HOME/ts_env.sh ]; then chmod +x $ADDON_HOME/ts_env.sh fi - + dos2unix $ADDON_HOME/ts_env.sh dos2unix $ADDON_HOME/ts.conf @@ -48,7 +48,7 @@ else TS_DEVICE_CONF_GENERIC="ts.conf-generic" #TS_DEVICE="$TS_DEVICE_1" # use specified one, should exist ts.conf for it - TS_DEVICE="" # find one automatically + TS_DEVICE="" # find one automatically #echo "device: $TS_DEVICE" TS_DEVICE_CONF="" @@ -59,7 +59,7 @@ else TSLIB_TSDEVICE=$(echo 999 | evtest 2>&1 >/dev/null | awk -F':' -v TS_DEVICE="$TS_DEVICE_1" '$0 ~ TS_DEVICE {print $1}') if [ -n "$TSLIB_TSDEVICE" ]; then TS_DEVICE_CONF="$TS_DEVICE_CONF_1" - rmmod st1232 >/dev/null 2>&1 # it's not + rmmod st1232 >/dev/null 2>&1 # it's not else TSLIB_TSDEVICE=$(echo 999 | evtest 2>&1 >/dev/null | awk -F':' -v TS_DEVICE="$TS_DEVICE_2" '$0 ~ TS_DEVICE {print $1}') if [ -n "$TSLIB_TSDEVICE" ]; then diff --git a/packages/addons/service/tvheadend42/source/bin/tv_grab_file b/packages/addons/service/tvheadend42/source/bin/tv_grab_file index 318927a03b..7cd4196ab5 100755 --- a/packages/addons/service/tvheadend42/source/bin/tv_grab_file +++ b/packages/addons/service/tvheadend42/source/bin/tv_grab_file @@ -3,8 +3,7 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) -if [ $# -lt 1 ] -then +if [ $# -lt 1 ]; then . /etc/profile ADDON_HOME="$HOME/.kodi/userdata/addon_data/service.tvheadend42" @@ -24,24 +23,24 @@ then if [ "$XMLTV_TYPE" = "FILE" ]; then case "$XMLTV_LOCATION_FILE" in - *.gz | *.bz2 | *.xz) + *.gz | *.bz2 | *.xz) zcat "$XMLTV_LOCATION_FILE" ;; - *) + *) cat "$XMLTV_LOCATION_FILE" ;; esac exit 0 elif [ "$XMLTV_TYPE" = "SCRIPT" ]; then - if [ -e "$XMLTV_LOCATION_SCRIPT" ] ; then + if [ -e "$XMLTV_LOCATION_SCRIPT" ]; then exec "$XMLTV_LOCATION_SCRIPT" fi elif [ "$XMLTV_TYPE" = "WEB" ]; then case "$XMLTV_LOCATION_WEB" in - *.gz | *.bz2 | *.xz) + *.gz | *.bz2 | *.xz) wget -qO - "$XMLTV_LOCATION_WEB" | zcat ;; - *) + *) wget -qO - "$XMLTV_LOCATION_WEB" ;; esac @@ -53,24 +52,20 @@ dflag= vflag= cflag= -for a in "$@" -do +for a in "$@"; do [ "$a" = "-d" -o "$a" = "--description" ] && dflag=1 [ "$a" = "-v" -o "$a" = "--version" ] && vflag=1 [ "$a" = "-c" -o "$a" = "--capabilities" ] && cflag=1 done -if [ -n "$dflag" ] -then +if [ -n "$dflag" ]; then echo "tv_grab_file is a simple grabber that can be configured through the addon settings from Kodi" fi -if [ -n "$vflag" ] -then +if [ -n "$vflag" ]; then echo "1.0" fi -if [ -n "$cflag" ] -then +if [ -n "$cflag" ]; then echo "baseline" fi diff --git a/packages/addons/service/tvheadend43/source/bin/tv_grab_file b/packages/addons/service/tvheadend43/source/bin/tv_grab_file index f2cf25ed88..5e8a9b5e7d 100755 --- a/packages/addons/service/tvheadend43/source/bin/tv_grab_file +++ b/packages/addons/service/tvheadend43/source/bin/tv_grab_file @@ -3,8 +3,7 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) -if [ $# -lt 1 ] -then +if [ $# -lt 1 ]; then . /etc/profile ADDON_HOME="$HOME/.kodi/userdata/addon_data/service.tvheadend43" @@ -24,24 +23,24 @@ then if [ "$XMLTV_TYPE" = "FILE" ]; then case "$XMLTV_LOCATION_FILE" in - *.gz | *.bz2 | *.xz) + *.gz | *.bz2 | *.xz) zcat "$XMLTV_LOCATION_FILE" ;; - *) + *) cat "$XMLTV_LOCATION_FILE" ;; esac exit 0 elif [ "$XMLTV_TYPE" = "SCRIPT" ]; then - if [ -e "$XMLTV_LOCATION_SCRIPT" ] ; then + if [ -e "$XMLTV_LOCATION_SCRIPT" ]; then exec "$XMLTV_LOCATION_SCRIPT" fi elif [ "$XMLTV_TYPE" = "WEB" ]; then case "$XMLTV_LOCATION_WEB" in - *.gz | *.bz2 | *.xz) + *.gz | *.bz2 | *.xz) wget -qO - "$XMLTV_LOCATION_WEB" | zcat ;; - *) + *) wget -qO - "$XMLTV_LOCATION_WEB" ;; esac @@ -53,24 +52,20 @@ dflag= vflag= cflag= -for a in "$@" -do +for a in "$@"; do [ "$a" = "-d" -o "$a" = "--description" ] && dflag=1 [ "$a" = "-v" -o "$a" = "--version" ] && vflag=1 [ "$a" = "-c" -o "$a" = "--capabilities" ] && cflag=1 done -if [ -n "$dflag" ] -then +if [ -n "$dflag" ]; then echo "tv_grab_file is a simple grabber that can be configured through the addon settings from Kodi" fi -if [ -n "$vflag" ] -then +if [ -n "$vflag" ]; then echo "1.0" fi -if [ -n "$cflag" ] -then +if [ -n "$cflag" ]; then echo "baseline" fi