diff --git a/docs/QNAP-forum-announcement.bbcode b/docs/QNAP-forum-announcement.bbcode index ad06df44c..d4a1a97e6 100644 --- a/docs/QNAP-forum-announcement.bbcode +++ b/docs/QNAP-forum-announcement.bbcode @@ -34,6 +34,6 @@ If 'sudo' is unavailable in your version of QTS, [url=https://www.qnap.com/en/ho If you have suggestions, advice, comments or concerns, please either create a new [url=https://github.com/OneCDOnly/sherpa/issues/new]issue[/url], or you are most welcome to start a new [url=https://github.com/OneCDOnly/sherpa/discussions/new/choose]discussion[/url] topic. -This project is a community effort, and has been built with the combined feedback of many community members on the [url=https://forum.qnap.com/viewtopic.php?f=320&t=132373]QNAP[/url] community forum. Thank you to everyone who has contributed. 🤓 +This project is a community effort, and was built with combined feedback from many members of the [url=https://forum.qnap.com/viewtopic.php?f=320&t=132373]QNAP[/url] community forum. Thank you to everyone who has contributed. 🤓 Checkout the wiki for more information: https://github.com/OneCDOnly/sherpa/wiki diff --git a/docs/README.md b/docs/README.md index a68e29cda..3e8061ca7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -28,6 +28,6 @@ sudo sherpa If you have suggestions, advice, comments or concerns, please either create a new [issue](https://github.com/OneCDOnly/sherpa/issues/new), or you are most welcome to start a new [discussion](https://github.com/OneCDOnly/sherpa/discussions/new/choose) topic. -This project is a community effort, and has been built with the combined feedback of many community members on the [QNAP](https://forum.qnap.com/viewtopic.php?f=320&t=132373) community forum. Thank you to everyone who has contributed. 🤓 +This project is a community effort, and was built with combined feedback from many members of the [QNAP](https://forum.qnap.com/viewtopic.php?f=320&t=132373) community forum. Thank you to everyone who has contributed. 🤓 Checkout the wiki for more information: [https://github.com/OneCDOnly/sherpa/wiki](https://github.com/OneCDOnly/sherpa/wiki) diff --git a/objects.tar.gz b/objects.tar.gz index d180aae90..edda95e0e 100644 Binary files a/objects.tar.gz and b/objects.tar.gz differ diff --git a/packages.tar.gz b/packages.tar.gz index 307aaa83b..431d58afd 100644 Binary files a/packages.tar.gz and b/packages.tar.gz differ diff --git a/sherpa-manager.tar.gz b/sherpa-manager.tar.gz index 9204640ce..2bd3a308a 100644 Binary files a/sherpa-manager.tar.gz and b/sherpa-manager.tar.gz differ diff --git a/support/build-all.sh b/support/build-all.sh index 4401aed3e..cf03be869 100755 --- a/support/build-all.sh +++ b/support/build-all.sh @@ -2,15 +2,15 @@ . vars.source || exit -declare -a source_pathfiles -declare -i index=0 +declare -a a +declare -i i=0 -source_pathfiles+=("$source_path/$objects_file") -source_pathfiles+=("$source_path/$packages_file") -source_pathfiles+=("$source_path/$management_file") +a+=("$support_path/$objects_file") +a+=("$support_path/$packages_file") +a+=("$support_path/$management_file") -for index in "${!source_pathfiles[@]}"; do - [[ -e ${source_pathfiles[index]} ]] && rm -f "${source_pathfiles[index]}" +for i in "${!a[@]}"; do + [[ -e ${a[i]} ]] && rm -f "${a[i]}" done ./build-qpkgs.sh sherpa || exit @@ -19,5 +19,3 @@ done ./build-wiki-package-abbreviations.sh || exit ./build-manager.sh || exit ./build-archives.sh || exit - -exit 0 diff --git a/support/build-archive.sh b/support/build-archive.sh deleted file mode 100755 index b8101e5d4..000000000 --- a/support/build-archive.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -# compiler for sherpa archive. - -. vars.source || exit - -echo -n 'building archive ... ' - -target_pathfile="$target_path/$management_archive_file" -[[ -e $target_pathfile ]] && rm -f "$target_pathfile" - -tar --create --gzip --numeric-owner --file="$target_pathfile" --directory="$source_path" "$objects_file" "$packages_file" "$management_file" - -if [[ ! -s $target_pathfile ]]; then - ColourTextBrightRed "'$target_pathfile' was not written"; echo - exit 1 -fi - -rm -f "$objects_file" "$packages_file" "$management_file" -chmod 444 "$target_pathfile" - -ShowDone -exit 0 diff --git a/support/build-archive.sh_(obsolete) b/support/build-archive.sh_(obsolete) new file mode 100755 index 000000000..edfca1c65 --- /dev/null +++ b/support/build-archive.sh_(obsolete) @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +# compiler for sherpa archives. + +. vars.source || exit + +echo -n 'building archive ... ' + +a=$target_path/$management_archive_file + +[[ -e $a ]] && rm -f "$a" + +tar --create --gzip --numeric-owner --file="$a" --directory="$support_path" "$objects_file" "$packages_file" "$management_file" + +if [[ ! -s $a ]]; then + ColourTextBrightRed "'$a' was not written"; echo + exit 1 +fi + +rm -f "$objects_file" "$packages_file" "$management_file" +chmod 444 "$a" + +ShowDone +exit 0 diff --git a/support/build-archives.sh b/support/build-archives.sh index ba61b367d..e877882fa 100755 --- a/support/build-archives.sh +++ b/support/build-archives.sh @@ -6,36 +6,36 @@ echo -n 'building archives ... ' -declare -a source_pathfiles -declare -a target_pathfiles -declare -i index=0 +declare -a a +declare -a b +declare -i i=0 -source_pathfiles+=("$source_path/$objects_file") -target_pathfiles+=("$target_path/$objects_archive_file") +a+=("$support_path/$objects_file") +b+=("$target_path/$objects_archive_file") -source_pathfiles+=("$source_path/$packages_file") -target_pathfiles+=("$target_path/$packages_archive_file") +a+=("$support_path/$packages_file") +b+=("$target_path/$packages_archive_file") -source_pathfiles+=("$source_path/$management_file") -target_pathfiles+=("$target_path/$management_archive_file") +a+=("$support_path/$management_file") +b+=("$target_path/$management_archive_file") -for index in "${!source_pathfiles[@]}"; do - [[ -e ${target_pathfiles[index]} ]] && rm -f "${target_pathfiles[index]}" +for i in "${!a[@]}"; do + [[ -e ${b[i]} ]] && rm -f "${b[i]}" - if [[ ! -e ${source_pathfiles[index]} ]]; then - ColourTextBrightRed "'${source_pathfiles[index]}' not found, " + if [[ ! -e ${a[i]} ]]; then + ColourTextBrightRed "'${a[i]}' not found, " continue fi - tar --create --gzip --numeric-owner --file="${target_pathfiles[index]}" --directory="$source_path" "$(basename "${source_pathfiles[index]}")" + tar --create --gzip --numeric-owner --file="${b[i]}" --directory="$support_path" "$(basename "${a[i]}")" - if [[ ! -s ${target_pathfiles[index]} ]]; then - ColourTextBrightRed "'${target_pathfiles[index]}' was not written"; echo + if [[ ! -s ${b[i]} ]]; then + ColourTextBrightRed "'${b[i]}' was not written"; echo exit 1 fi - [[ -e ${source_pathfiles[index]} ]] && rm -f "${source_pathfiles[index]}" - chmod 444 "${target_pathfiles[index]}" + [[ -e ${a[i]} ]] && rm -f "${a[i]}" + chmod 444 "${b[i]}" done ShowDone diff --git a/support/build-manager.sh b/support/build-manager.sh index 56acf6fe8..bb1e4dbcf 100755 --- a/support/build-manager.sh +++ b/support/build-manager.sh @@ -2,12 +2,12 @@ . vars.source || exit -source_pathfile=$source_path/$management_source_file -target_pathfile=$source_path/$management_file +a=$support_path/$management_source_file +b=$support_path/$management_file -SwapTags "$source_pathfile" "$target_pathfile" -Squeeze "$target_pathfile" "$target_pathfile" +SwapTags "$a" "$b" +Squeeze "$b" "$b" -[[ -e $target_pathfile ]] && chmod 554 "$target_pathfile" +[[ -e $b ]] && chmod 554 "$b" exit 0 diff --git a/support/build-objects.sh b/support/build-objects.sh index 5589a9165..5d8d64a7a 100755 --- a/support/build-objects.sh +++ b/support/build-objects.sh @@ -4,7 +4,7 @@ echo -n "building 'objects' file ... " -target_pathfile="$source_path/$objects_file" +target=$support_path/$objects_file # These are used internally by sherpa. Must maintain separate lists for sherpa internal-use, and what user has requested. # ordered @@ -65,7 +65,7 @@ echo $public_function_name':Init() '$public_function_name':NoLogMods() { '$_placeholder_log_changes_flag_'=false ;} -'$public_function_name':Init' >> "$target_pathfile" +'$public_function_name':Init' >> "$target" return 0 @@ -127,15 +127,15 @@ echo $public_function_name':Add() { if [[ -n ${1:-} && ${1:-} = "=" ]]; then '$_placeholder_size_'=$2; else echo -n "$'$_placeholder_size_'" fi ;} -'$public_function_name':Init' >> "$target_pathfile" +'$public_function_name':Init' >> "$target" return 0 } -[[ -e $target_pathfile ]] && rm -f "$target_pathfile" -echo "OBJECTS_VER=''" > "$target_pathfile" -echo "#* " >> "$target_pathfile" +[[ -e $target ]] && rm -f "$target" +echo "OBJECTS_VER=''" > "$target" +echo "#* " >> "$target" # package action flag objects. @@ -197,16 +197,16 @@ for action in "${PIP_ACTIONS[@]}"; do done done -if [[ ! -e $target_pathfile ]]; then - ColourTextBrightRed "'$target_pathfile' was not written to disk"; echo +if [[ ! -e $target ]]; then + ColourTextBrightRed "'$target' was not written to disk"; echo exit 1 else ShowDone fi -SwapTags "$target_pathfile" "$target_pathfile" -Squeeze "$target_pathfile" "$target_pathfile" +SwapTags "$target" "$target" +Squeeze "$target" "$target" -[[ -f $target_pathfile ]] && chmod 444 "$target_pathfile" +[[ -f $target ]] && chmod 444 "$target" exit 0 diff --git a/support/build-packages.sh b/support/build-packages.sh index 0ea90a586..15b537915 100755 --- a/support/build-packages.sh +++ b/support/build-packages.sh @@ -2,10 +2,10 @@ . vars.source || exit -source_pathfile=$source_path/$packages_source_file -target_pathfile=$source_path/$packages_file +source=$support_path/$packages_source_file +target=$support_path/$packages_file -buffer=$(<"$source_pathfile") +buffer=$(<"$source") checksum_pathfilename='' checksum_filename='' @@ -55,10 +55,10 @@ TranslateQPKGArch() StripComments() { - # input: + # Input: # $1 = string to strip comment lines, empty lines, and so-on. - # output: + # Output: # stdout = stripped string. [[ -n $1 ]] || return @@ -127,7 +127,7 @@ ShowDone echo -n 'loading IPK essentials ... ' - a=$source_path/ipk-essential.txt + a=$support_path/ipk-essential.txt if [[ -e $a ]]; then essential_ipks=$(/bin/tr '\n' ' ' <<< "$(StripComments "$(<"$a")")") @@ -139,7 +139,7 @@ ShowDone echo -n 'loading PIP essentials ... ' - a=$source_path/pip-essential.txt + a=$support_path/pip-essential.txt if [[ -e $a ]]; then essential_pips=$(/bin/tr '\n' ' ' <<< "$(StripComments "$(<"$a")")") @@ -151,7 +151,7 @@ ShowDone echo -n 'loading PIP exclusions ... ' - a=$source_path/pip-exclusions.txt + a=$support_path/pip-exclusions.txt if [[ -e $a ]]; then exclusion_pips=$(/bin/tr '\n' ' ' <<< "$(StripComments "$(<"$a")")") @@ -161,17 +161,17 @@ echo -n 'loading PIP exclusions ... ' ShowDone -[[ -e $target_pathfile ]] && chmod +w "$target_pathfile" -echo "$buffer" > "$target_pathfile" -SwapTags "$source_pathfile" "$target_pathfile" -buffer=$(<"$target_pathfile") +[[ -e $target ]] && chmod +w "$target" +echo "$buffer" > "$target" +SwapTags "$source" "$target" +buffer=$(<"$target") echo -n 'updating QPKG fields ... ' - buffer=$(sed "s||$cdn_nzbget_dev_packages_url|g" <<< "$buffer") - buffer=$(sed "s||$cdn_other_packages_url|g" <<< "$buffer") - buffer=$(sed "s||$cdn_qnap_dev_packages_url|g" <<< "$buffer") - buffer=$(sed "s||$cdn_sherpa_packages_url|g" <<< "$buffer") +# buffer=$(sed "s||$cdn_nzbget_dev_packages_url|g" <<< "$buffer") +# buffer=$(sed "s||$cdn_other_packages_url|g" <<< "$buffer") +# buffer=$(sed "s||$cdn_qnap_dev_packages_url|g" <<< "$buffer") +# buffer=$(sed "s||$cdn_sherpa_packages_url|g" <<< "$buffer") while read -r checksum_filename qpkg_filename package_name version arch hash; do for property in version package_name qpkg_filename hash; do @@ -194,17 +194,17 @@ ShowDone echo -n "building 'packages' file ... " - echo "$buffer" > "$target_pathfile" + echo "$buffer" > "$target" -if [[ ! -e $target_pathfile ]]; then - ColourTextBrightRed "'$target_pathfile' was not written to disk"; echo +if [[ ! -e $target ]]; then + ColourTextBrightRed "'$target' was not written to disk"; echo exit 1 else ShowDone fi -Squeeze "$target_pathfile" "$target_pathfile" -[[ -f $target_pathfile ]] && chmod 444 "$target_pathfile" +Squeeze "$target" "$target" +[[ -f $target ]] && chmod 444 "$target" # Sort and add header line for easier viewing. diff --git a/support/build-qpkgs.sh b/support/build-qpkgs.sh index 231b2a72a..6902c4c4c 100755 --- a/support/build-qpkgs.sh +++ b/support/build-qpkgs.sh @@ -6,14 +6,14 @@ . vars.source || exit -source_pathfile=$source_path/$service_library_source_file -target_pathfile=$source_path/$service_library_file -datetime_change_reference_pathfile=$target_pathfile rebuild_functions=false rebuilt_functions=false +a=$support_path/$service_library_source_file +b=$support_path/$service_library_file + c=$b -if [[ -e $datetime_change_reference_pathfile ]]; then - if [[ -n $(find -L "$source_pathfile" -newer "$datetime_change_reference_pathfile") ]]; then +if [[ -e $c ]]; then + if [[ -n $(find -L "$a" -newer "$c") ]]; then echo "service library source: modified" rebuild_functions=true else @@ -25,11 +25,11 @@ else fi if [[ $rebuild_functions = true ]]; then - SwapTags "$source_pathfile" "$target_pathfile" >/dev/null - Squeeze "$target_pathfile" "$target_pathfile" >/dev/null - [[ -f "$target_pathfile" ]] && chmod 444 "$target_pathfile" + SwapTags "$a" "$b" >/dev/null + Squeeze "$b" "$b" >/dev/null + [[ -f "$b" ]] && chmod 444 "$b" - if [[ -s "$target_pathfile" ]]; then + if [[ -s "$b" ]]; then echo "service library: $(ColourTextBrightGreen rebuilt)" rebuilt_functions=true fi @@ -58,11 +58,11 @@ for d in "$qpkgs_path"/*; do echo "service library: no link" fi else - datetime_change_reference_file=$(cd "$d/build" || exit; ls -t1 --reverse | tail -n1) + a=$(cd "$d/build" || exit; ls -t1 --reverse | tail -n1) - if [[ -n $datetime_change_reference_file ]]; then - echo "datetime reference file: '$datetime_change_reference_file'" - datetime_change_reference_pathfile=$d/build/$datetime_change_reference_file + if [[ -n $a ]]; then + echo "datetime reference file: '$a'" + c=$d/build/$a else echo "datetime reference file: unspecified" rebuild_package=true @@ -70,8 +70,8 @@ for d in "$qpkgs_path"/*; do fi if [[ $rebuild_package = false ]]; then - if [[ -e $datetime_change_reference_pathfile ]]; then - changed_file_list=$(find -L "$d" ! -type d -newer "$datetime_change_reference_pathfile") + if [[ -e $c ]]; then + changed_file_list=$(find -L "$d" ! -type d -newer "$c") if [[ -n $changed_file_list ]]; then echo "package files: changed" @@ -99,8 +99,8 @@ for d in "$qpkgs_path"/*; do continue fi - service_script_file=$(. $config_pathfile; echo "$QPKG_SERVICE_PROGRAM") loader_script_file=$(. $config_pathfile; echo "$QPKG_LOADER_PROGRAM") + service_script_file=$(. $config_pathfile; echo "$QPKG_SERVICE_PROGRAM") if [[ -z $service_script_file ]]; then echo "service script file: unspecified" diff --git a/support/build-wiki-package-abbreviations.sh b/support/build-wiki-package-abbreviations.sh index 3880e4445..fa51942d4 100755 --- a/support/build-wiki-package-abbreviations.sh +++ b/support/build-wiki-package-abbreviations.sh @@ -1,12 +1,13 @@ #!/usr/bin/env bash . vars.source || exit + objects_built=false Objects:Load() { - readonly OBJECTS_PATHFILE=$source_path/$objects_file + readonly OBJECTS_PATHFILE=$support_path/$objects_file if [[ ! -e $OBJECTS_PATHFILE ]]; then ./build-objects.sh &>/dev/null @@ -27,7 +28,7 @@ Objects:Load() Packages:Load() { - readonly PACKAGES_PATHFILE=$source_path/$packages_source_file + readonly PACKAGES_PATHFILE=$support_path/$packages_source_file if [[ ! -e $PACKAGES_PATHFILE ]]; then echo 'package list missing' @@ -74,35 +75,12 @@ Packages:Load() } -QPKG.Abbrvs() - { - - # input: - # $1 = QPKG name. - - # output: - # stdout = list of abbreviations that may be used to specify this package (first package found). - # $? = 0 if successful, 1 if failed. - - local -i index=0 - - for index in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$index]} = "${1:?package name null}" ]]; then - echo "${QPKG_ABBRVS[$index]}" - return 0 - fi - done - - return 1 - - } - echo -n "building wiki 'Package abbreviations' page ... " -target_pathfile=$wiki_path/Package-abbreviations.md +a=$wiki_path/Package-abbreviations.md Objects:Load -Packages:Load 2>/dev/null # packages source file throws a lot of syntax errors until it's processed - ignore these. +Packages:Load 2>/dev/null # packages source file throws b lot of syntax errors until it's processed - ignore these. { @@ -111,11 +89,11 @@ Packages:Load 2>/dev/null # packages source file throws a lot of syntax errors u echo '| package name | acceptable abbreviations |' echo '| ---: | :--- |' - } > "$target_pathfile" + } > "$a" -for package_name in $(QPKGs-GRall:Array); do - abs=$(QPKG.Abbrvs "$package_name") - echo "| $package_name | \`${abs// /\` \`}\` |" >> "$target_pathfile" +for b in $(QPKGs-GRall:Array); do + abs=$(QPKG.Abbrvs "$b") + echo "| $b | \`${abs// /\` \`}\` |" >> "$a" done [[ $objects_built = true ]] && rm -f "$OBJECTS_PATHFILE" diff --git a/support/check-syntax.sh b/support/check-syntax.sh index bc8b26263..b20d466d1 100755 --- a/support/check-syntax.sh +++ b/support/check-syntax.sh @@ -21,7 +21,7 @@ exclusions+=(1036,1090,1091,2001,2006,2012,2016,2028,2034,2054,2086,2154,2155) for index in "${!filenames[@]}"; do echo -n "checking '${filenames[index]}' ... " - if shellcheck --shell=bash --exclude="${exclusions[index]}" "$source_path"/${filenames[index]}; then + if shellcheck --shell=bash --exclude="${exclusions[index]}" "$support_path"/${filenames[index]}; then ShowPassed else ShowFailed diff --git a/support/clean-source.sh b/support/clean-source.sh index 0b9e4c906..8d4d6ad91 100755 --- a/support/clean-source.sh +++ b/support/clean-source.sh @@ -2,18 +2,18 @@ . vars.source || exit -declare -a filenames -declare -i index=0 +declare -a a +declare -i i=0 -filenames+=("$management_source_file") -filenames+=("$service_library_source_file") +a+=("$management_source_file") +a+=("$service_library_source_file") -for index in "${!filenames[@]}"; do - echo -n "cleaning code '${filenames[index]}' ... " +for i in "${!a[@]}"; do + echo -n "cleaning code '${a[i]}' ... " - touch --reference="$source_path"/"${filenames[index]}" /tmp/"$index".tmp - sed -i 's|^[ ][\t]|\t|' "$source_path"/${filenames[index]} # remove leading space char left by kate line commenter/uncommenter - touch --reference=/tmp/"$index".tmp "$source_path"/"${filenames[index]}" + touch --reference="$support_path"/"${a[i]}" /tmp/"$i".tmp + sed -i 's|^[ ][\t]|\t|' "$support_path"/${a[i]} # remove leading space char left by Kate line commenter/uncommenter + touch --reference=/tmp/"$i".tmp "$support_path"/"${a[i]}" ShowPassed done diff --git a/support/commit.sh b/support/commit.sh index ca08fa177..5473a8ad1 100755 --- a/support/commit.sh +++ b/support/commit.sh @@ -4,11 +4,10 @@ # $1 = commit message (optional) # $1 = 'nocheck' (optional) = skip syntax check. Default is to perform syntax check before committing. -source_path="$HOME"/scripts/nas/sherpa/support this_path=$PWD -. $source_path/vars.source || exit +. $HOME/scripts/nas/sherpa/support/vars.source || exit -cd "$source_path" || exit +cd "$support_path" || exit ./clean-source.sh [[ ${1:-} != nocheck ]] && { ./check-syntax.sh || exit ;} @@ -25,5 +24,3 @@ else fi cd "$this_path" || exit - -exit 0 diff --git a/support/highest_package_versions_found.tbl b/support/highest_package_versions_found.tbl index b6a00b17d..c816695ea 100644 --- a/support/highest_package_versions_found.tbl +++ b/support/highest_package_versions_found.tbl @@ -1,5 +1,6 @@ # checksum_filename qpkg_filename package_name version arch hash -ClamAV_240430.qpkg.md5 ClamAV_240430.qpkg ClamAV 240430 all d4ec773a0f2e95cce78441d8098ab1a8 +Bazarr_240501.qpkg.md5 Bazarr_240501.qpkg Bazarr 240501 all 33c0c2d645163dd4d89147d870b0bc80 +ClamAV_240501.qpkg.md5 ClamAV_240501.qpkg ClamAV 240501 all 16109cce1347630e2d9d935eeff1d74f Deluge-server_240420.qpkg.md5 Deluge-server_240420.qpkg Deluge-server 240420 all cdc0e76e06cc49c6a8bf0814cd05897d Deluge-web_240420.qpkg.md5 Deluge-web_240420.qpkg Deluge-web 240420 all 989d74e9507071eb454e127da8bd1700 duf_240414_arm_64.qpkg.md5 duf_240414_arm_64.qpkg duf 240414 a64 094f8dd8f783ed329fe11e8084d543ba @@ -8,23 +9,23 @@ duf_240414_arm-x41.qpkg.md5 duf_240414_arm-x41.qpkg duf duf_240414_x86_64.qpkg.md5 duf_240414_x86_64.qpkg duf 240414 i64 3e61b7da6ad82ee077bb95ed71986469 duf_240414_x86.qpkg.md5 duf_240414_x86.qpkg duf 240414 i86 1a25bf4b189c123e11e84c3f5ec2de28 Entware_1.03a_std.qpkg.md5 Entware_1.03a_std.qpkg Entware 1.03a all deb88a170716d39309d124ad77875b4d -Glances_240430.qpkg.md5 Glances_240430.qpkg Glances 240430 all b39a9d919e596c93a471706adb356412 +Glances_240501.qpkg.md5 Glances_240501.qpkg Glances 240501 all c59b7097547724b6074ff6f7031b839c gpt-engineer_240202.qpkg.md5 gpt-engineer_240202.qpkg gpt-engineer 240202 all f04fde0d2eab15a4ff645f8d99ca9b2f -Headphones_240430.qpkg.md5 Headphones_240430.qpkg Headphones 240430 all 8a61b8d60e92077f3f48cab0fd1005db +Headphones_240501.qpkg.md5 Headphones_240501.qpkg Headphones 240501 all c1769a967e0d4ae1e3f48dbc2bd7cb9d HideThatBanner_240205.qpkg.md5 HideThatBanner_240205.qpkg HideThatBanner 240205 all a2d6d70756ab37a5b1af42b21f3c2b45 IncreaseTimeouts_240126.qpkg.md5 IncreaseTimeouts_240126.qpkg IncreaseTimeouts 240126 all 1e98f7add6ad9efa37e0593eeedbb2da inxi_240417.qpkg.md5 inxi_240417.qpkg inxi 240417 all a6be021ef7592ed1eb3aeac56d922816 -Kapowarr_240430_arm_64.qpkg.md5 Kapowarr_240430_arm_64.qpkg Kapowarr 240430 a64 5cf91ae431d25ebcda3ab2a6a8d3165b -Kapowarr_240430_x86_64.qpkg.md5 Kapowarr_240430_x86_64.qpkg Kapowarr 240430 i64 4f188db321926b75bc3526a1f537f331 -Kapowarr_240430_x86.qpkg.md5 Kapowarr_240430_x86.qpkg Kapowarr 240430 i86 70bf0cf30711c0c82100bb9a8976d8d1 -LazyLibrarian_240430_arm_64.qpkg.md5 LazyLibrarian_240430_arm_64.qpkg LazyLibrarian 240430 a64 70d23aef9147de9a151a00900afc7bb9 -LazyLibrarian_240430_x86_64.qpkg.md5 LazyLibrarian_240430_x86_64.qpkg LazyLibrarian 240430 i64 354ecf5220d06fdd795432013f6338a0 -LazyLibrarian_240430_x86.qpkg.md5 LazyLibrarian_240430_x86.qpkg LazyLibrarian 240430 i86 b140e3581dddf890e419a8849680a968 -Mylar3_240430_arm_64.qpkg.md5 Mylar3_240430_arm_64.qpkg Mylar3 240430 a64 57dbe28ce454e405f9b363fb4b619731 -Mylar3_240430_arm-x31.qpkg.md5 Mylar3_240430_arm-x31.qpkg Mylar3 240430 a31 946a548ae235fdd93ee701766ea8d6e3 -Mylar3_240430_arm-x41.qpkg.md5 Mylar3_240430_arm-x41.qpkg Mylar3 240430 a41 d4874024da0662f8b0cb27326ba968c9 -Mylar3_240430_x86_64.qpkg.md5 Mylar3_240430_x86_64.qpkg Mylar3 240430 i64 4b78d039059012c3c1a0ab4df64e777b -Mylar3_240430_x86.qpkg.md5 Mylar3_240430_x86.qpkg Mylar3 240430 i86 37a400bcafbfb4ae97390b143a7ee077 +Kapowarr_240501_arm_64.qpkg.md5 Kapowarr_240501_arm_64.qpkg Kapowarr 240501 a64 c5d9a2aa3451b5569b0044fc093d32fd +Kapowarr_240501_x86_64.qpkg.md5 Kapowarr_240501_x86_64.qpkg Kapowarr 240501 i64 af173f47bb29559599f469a1f77c24a3 +Kapowarr_240501_x86.qpkg.md5 Kapowarr_240501_x86.qpkg Kapowarr 240501 i86 2b2c591b9fb0cfd911d8fa4e6c2bb2bd +LazyLibrarian_240501_arm_64.qpkg.md5 LazyLibrarian_240501_arm_64.qpkg LazyLibrarian 240501 a64 3368f18ab7fd912d575e2c236034b2a2 +LazyLibrarian_240501_x86_64.qpkg.md5 LazyLibrarian_240501_x86_64.qpkg LazyLibrarian 240501 i64 cb2da4ba6b7394eb899de69cb51aad1d +LazyLibrarian_240501_x86.qpkg.md5 LazyLibrarian_240501_x86.qpkg LazyLibrarian 240501 i86 b73ef9a49ca18867d9eed30b0d8ff574 +Mylar3_240501_arm_64.qpkg.md5 Mylar3_240501_arm_64.qpkg Mylar3 240501 a64 21949df1eb2af7a76ce8b61898ce035b +Mylar3_240501_arm-x31.qpkg.md5 Mylar3_240501_arm-x31.qpkg Mylar3 240501 a31 e71d9e9f2894052dd8e37adc6105543b +Mylar3_240501_arm-x41.qpkg.md5 Mylar3_240501_arm-x41.qpkg Mylar3 240501 a41 93cf4f1910b793b3535161227c6b9642 +Mylar3_240501_x86_64.qpkg.md5 Mylar3_240501_x86_64.qpkg Mylar3 240501 i64 17241b10760484e8056d9145abc8c924 +Mylar3_240501_x86.qpkg.md5 Mylar3_240501_x86.qpkg Mylar3 240501 i86 3ac890e5174815679c704ba527507f1e NZBGet_240426.qpkg.md5 NZBGet_240426.qpkg NZBGet 240426 all ea1f0c48a0f37733e096c2834c8ad242 nzbget_24.0_arm_64.qpkg.md5 nzbget_24.0_arm_64.qpkg nzbget 24.0 a64 2cf1d52b155745981cf8be464ee9e9e6 nzbget_24.0_arm-x19.qpkg.md5 nzbget_24.0_arm-x19.qpkg nzbget 24.0 a19 017f82261f8de97c9029143af721a575 @@ -32,62 +33,62 @@ nzbget_24.0_arm-x31.qpkg.md5 nzbget_24.0_arm-x31.qpkg nzbget nzbget_24.0_arm-x41.qpkg.md5 nzbget_24.0_arm-x41.qpkg nzbget 24.0 a41 88c5be252ca0f4954cac530bb6063d59 nzbget_24.0_x86_64.qpkg.md5 nzbget_24.0_x86_64.qpkg nzbget 24.0 i64 4257734e071212ee2bc7065fac256556 nzbget_24.0_x86.qpkg.md5 nzbget_24.0_x86.qpkg nzbget 24.0 i86 c569409c5df4f7d672431e67f25d0244 -NZBHydra2_240430_arm_64.qpkg.md5 NZBHydra2_240430_arm_64.qpkg NZBHydra2 240430 a64 6b7c59dc67d9d131c8e984e18dca8423 -NZBHydra2_240430_x86_64.qpkg.md5 NZBHydra2_240430_x86_64.qpkg NZBHydra2 240430 i64 af7476e71fae048446786f420cf82e37 +NZBHydra2_240501_arm_64.qpkg.md5 NZBHydra2_240501_arm_64.qpkg NZBHydra2 240501 a64 511ce0acde248381538105151437cf50 +NZBHydra2_240501_x86_64.qpkg.md5 NZBHydra2_240501_x86_64.qpkg NZBHydra2 240501 i64 baeb0f8b0606116eb0d2b1264ff4b331 nzbToMedia_240205.qpkg.md5 nzbToMedia_240205.qpkg nzbToMedia 240205 all 6a43a3e6a7b04762034a1ad7918addad OFlexGet_240202_arm_64.qpkg.md5 OFlexGet_240202_arm_64.qpkg OFlexGet 240202 a64 48dbc690e008ada06eab04af92109982 OFlexGet_240202_x86_64.qpkg.md5 OFlexGet_240202_x86_64.qpkg OFlexGet 240202 i64 c43edf0eadadb7f522d3193a60c7e8e3 OFlexGet_240202_x86.qpkg.md5 OFlexGet_240202_x86.qpkg OFlexGet 240202 i86 e68ef644d2b9803a444ca99f6da96c0b -OLidarr_240430_arm_64.qpkg.md5 OLidarr_240430_arm_64.qpkg OLidarr 240430 a64 858141397051f926327fa93e6f0fdd09 -OLidarr_240430_x86_64.qpkg.md5 OLidarr_240430_x86_64.qpkg OLidarr 240430 i64 4afb54f8297b1f20fbb007b9b748e70c -OliveTin_240430_arm_64.qpkg.md5 OliveTin_240430_arm_64.qpkg OliveTin 240430 a64 94abc64230dcf09c822cf10497626282 -OliveTin_240430_arm-x19.qpkg.md5 OliveTin_240430_arm-x19.qpkg OliveTin 240430 a19 300f899a7ddcbea586ea08b7efed9394 -OliveTin_240430_arm-x31.qpkg.md5 OliveTin_240430_arm-x31.qpkg OliveTin 240430 a31 8267576d68020ca12e370f7dd880e4a8 -OliveTin_240430_arm-x41.qpkg.md5 OliveTin_240430_arm-x41.qpkg OliveTin 240430 a41 5e7bfb67312c2f8f7757eefaf94674e4 -OliveTin_240430_x86_64.qpkg.md5 OliveTin_240430_x86_64.qpkg OliveTin 240430 i64 69c0f301d4836b8fb1af97348e157b43 -OMedusa_240430.qpkg.md5 OMedusa_240430.qpkg OMedusa 240430 all 3e520bb8cbea354f6643ed7c615b7f79 -OqBittorrent_240430.qpkg.md5 OqBittorrent_240430.qpkg OqBittorrent 240430 all 47f86964634bba58936ddbb1aa3d28f5 -OReadarr_240430_arm_64.qpkg.md5 OReadarr_240430_arm_64.qpkg OReadarr 240430 a64 8a3d42bfb6e642fcfa48a687bb24bce0 -OReadarr_240430_x86_64.qpkg.md5 OReadarr_240430_x86_64.qpkg OReadarr 240430 i64 911fe9c04b55a61c396ebe65ea19d8ca -OSickGear_240430_arm_64.qpkg.md5 OSickGear_240430_arm_64.qpkg OSickGear 240430 a64 cbf4e1cabfc1cb5400ef0c32248754bb -OSickGear_240430_arm-x19.qpkg.md5 OSickGear_240430_arm-x19.qpkg OSickGear 240430 a19 87506f44e266d6d1892997e82687074f -OSickGear_240430_arm-x31.qpkg.md5 OSickGear_240430_arm-x31.qpkg OSickGear 240430 a31 9e99a740d4c34a9bab92e59391bd5fae -OSickGear_240430_arm-x41.qpkg.md5 OSickGear_240430_arm-x41.qpkg OSickGear 240430 a41 e927ca3e51c7cf9c342673c4172cd464 -OSickGear_240430_x86_64.qpkg.md5 OSickGear_240430_x86_64.qpkg OSickGear 240430 i64 401bc2afa4a3059f81613256963e4b1e -OSickGear_240430_x86.qpkg.md5 OSickGear_240430_x86.qpkg OSickGear 240430 i86 d955911e4023b41af69abe808c5d7885 -OSonarr_240430_arm_64.qpkg.md5 OSonarr_240430_arm_64.qpkg OSonarr 240430 a64 036973c7d688b99332a1ccfdfe873125 -OSonarr_240430_x86_64.qpkg.md5 OSonarr_240430_x86_64.qpkg OSonarr 240430 i64 6aed193e1ae71e80013f9fa3495a865a -OTautulli_240430_arm_64.qpkg.md5 OTautulli_240430_arm_64.qpkg OTautulli 240430 a64 dc97ca5fc78451e0b172629b56739cb3 -OTautulli_240430_x86_64.qpkg.md5 OTautulli_240430_x86_64.qpkg OTautulli 240430 i64 ecf9604111212c257ea0d5434166de76 -OTautulli_240430_x86.qpkg.md5 OTautulli_240430_x86.qpkg OTautulli 240430 i86 055c479143ee815a0810380de9c11e37 -OTransmission_240430.qpkg.md5 OTransmission_240430.qpkg OTransmission 240430 all 4919c3d5e85de5b302d8b6f4f32e6729 -OWatcher3_240430.qpkg.md5 OWatcher3_240430.qpkg OWatcher3 240430 all 93c67ff20bdc9f7d6b9cdc6fc3897bb8 -OWhisparr_240430_arm_64.qpkg.md5 OWhisparr_240430_arm_64.qpkg OWhisparr 240430 a64 888a0eb96883300381a0dd131ce00d6c -OWhisparr_240430_x86_64.qpkg.md5 OWhisparr_240430_x86_64.qpkg OWhisparr 240430 i64 96e36c782cb85570fdedd8310057c8fd +OLidarr_240501_arm_64.qpkg.md5 OLidarr_240501_arm_64.qpkg OLidarr 240501 a64 9eab4ae1e657c221b259b72b71e66d75 +OLidarr_240501_x86_64.qpkg.md5 OLidarr_240501_x86_64.qpkg OLidarr 240501 i64 74c66d0a9f8e64bf7bc4fc562e63f84b +OliveTin_240501_arm_64.qpkg.md5 OliveTin_240501_arm_64.qpkg OliveTin 240501 a64 d2f21d293aa422511f3c22f0a9f2fdde +OliveTin_240501_arm-x19.qpkg.md5 OliveTin_240501_arm-x19.qpkg OliveTin 240501 a19 3f10cb501ca860046452b33ad255a4db +OliveTin_240501_arm-x31.qpkg.md5 OliveTin_240501_arm-x31.qpkg OliveTin 240501 a31 68b528a21ac095b3473fecac358991f9 +OliveTin_240501_arm-x41.qpkg.md5 OliveTin_240501_arm-x41.qpkg OliveTin 240501 a41 3a38f5715e854090d7826929059c1d9d +OliveTin_240501_x86_64.qpkg.md5 OliveTin_240501_x86_64.qpkg OliveTin 240501 i64 abf28df5da33c6aef20353e2da69c3a0 +OMedusa_240501.qpkg.md5 OMedusa_240501.qpkg OMedusa 240501 all c59642896ad0d09bd8b74f23219f1a0f +OqBittorrent_240501.qpkg.md5 OqBittorrent_240501.qpkg OqBittorrent 240501 all beb1f3d342e76a0f99b5d6c55b36f4d7 +OReadarr_240501_arm_64.qpkg.md5 OReadarr_240501_arm_64.qpkg OReadarr 240501 a64 46854211f2b54192aa80d2f9253369e7 +OReadarr_240501_x86_64.qpkg.md5 OReadarr_240501_x86_64.qpkg OReadarr 240501 i64 75872039b6854c1e7bb9b8f6ce40b30b +OSickGear_240501_arm_64.qpkg.md5 OSickGear_240501_arm_64.qpkg OSickGear 240501 a64 b8e1bf4bed3dbcdea57d7475d6832a02 +OSickGear_240501_arm-x19.qpkg.md5 OSickGear_240501_arm-x19.qpkg OSickGear 240501 a19 9edcf8c779b05f052fbfdaac677f713f +OSickGear_240501_arm-x31.qpkg.md5 OSickGear_240501_arm-x31.qpkg OSickGear 240501 a31 5970e012627ad1d4ab65cf193627164b +OSickGear_240501_arm-x41.qpkg.md5 OSickGear_240501_arm-x41.qpkg OSickGear 240501 a41 6dff4a68c89fc4c4b27cd208d4afe0be +OSickGear_240501_x86_64.qpkg.md5 OSickGear_240501_x86_64.qpkg OSickGear 240501 i64 a193cea5ff318626a0b4572a51fa5d2c +OSickGear_240501_x86.qpkg.md5 OSickGear_240501_x86.qpkg OSickGear 240501 i86 ae6ca63896e180bbed69a1049750c045 +OSonarr_240501_arm_64.qpkg.md5 OSonarr_240501_arm_64.qpkg OSonarr 240501 a64 2a7ffca50b2b825ca08a119c2182c565 +OSonarr_240501_x86_64.qpkg.md5 OSonarr_240501_x86_64.qpkg OSonarr 240501 i64 21710e8c06685fb10c2c7a5414a03d1c +OTautulli_240501_arm_64.qpkg.md5 OTautulli_240501_arm_64.qpkg OTautulli 240501 a64 67e9ad41f8568a1f7fd5c909ffae173e +OTautulli_240501_x86_64.qpkg.md5 OTautulli_240501_x86_64.qpkg OTautulli 240501 i64 04a156fd850e10b90bc4051f9b1cd0e2 +OTautulli_240501_x86.qpkg.md5 OTautulli_240501_x86.qpkg OTautulli 240501 i86 18ba061da97d68240ee5343b31f5501b +OTransmission_240501.qpkg.md5 OTransmission_240501.qpkg OTransmission 240501 all 3b91603c67e5ac6f9078610b9b05449e +OWatcher3_240501.qpkg.md5 OWatcher3_240501.qpkg OWatcher3 240501 all 688d7b2f59c74805b8f443cea72b5f52 +OWhisparr_240501_arm_64.qpkg.md5 OWhisparr_240501_arm_64.qpkg OWhisparr 240501 a64 0581bb522af55677907530ef43573d84 +OWhisparr_240501_x86_64.qpkg.md5 OWhisparr_240501_x86_64.qpkg OWhisparr 240501 i64 46f1dbd4bb886f1d24a4031c73e07736 Par2_0.8.1.1_arm-x19.qpkg.md5 Par2_0.8.1.1_arm-x19.qpkg Par2 0.8.1.1 a19 d312d8bd2dee43e62a720f0d209905f8 Par2_0.8.1.1_x86.qpkg.md5 Par2_0.8.1.1_x86.qpkg Par2 0.8.1.1 i86 6c685f4d0571467afbf00f5371c9ac68 Par2turbo_1.1.0_arm_64.qpkg.md5 Par2turbo_1.1.0_arm_64.qpkg Par2turbo 1.1.0 a64 2617e5739f17ff557b817a20c2ae38e9 Par2turbo_1.1.0_arm-x31.qpkg.md5 Par2turbo_1.1.0_arm-x31.qpkg Par2turbo 1.1.0 a31 fafa50f9fe67d7798e2261ec8408cf1a Par2turbo_1.1.0_arm-x41.qpkg.md5 Par2turbo_1.1.0_arm-x41.qpkg Par2turbo 1.1.0 a41 da1a48d4674453c5116870ad35c0b899 Par2turbo_1.1.0_x86_64.qpkg.md5 Par2turbo_1.1.0_x86_64.qpkg Par2turbo 1.1.0 i64 574f2d84284fe1c1f2e66d104e16ae8b -pyLoad_240430_arm_64.qpkg.md5 pyLoad_240430_arm_64.qpkg pyLoad 240430 a64 ec7972b7328e51af5a9e77e40bfde192 -pyLoad_240430_x86_64.qpkg.md5 pyLoad_240430_x86_64.qpkg pyLoad 240430 i64 9a4742c16d1e39840babc9da68a44dce -pyLoad_240430_x86.qpkg.md5 pyLoad_240430_x86.qpkg pyLoad 240430 i86 29f528a9d27cef7531cd1507c5975422 +pyLoad_240501_arm_64.qpkg.md5 pyLoad_240501_arm_64.qpkg pyLoad 240501 a64 39da472efa6b2370b690c32f334b7930 +pyLoad_240501_x86_64.qpkg.md5 pyLoad_240501_x86_64.qpkg pyLoad 240501 i64 f7aaf6518f40a3b144a2fb896ef67441 +pyLoad_240501_x86.qpkg.md5 pyLoad_240501_x86.qpkg pyLoad 240501 i86 d0dfc5c3ff28572cf0cbd899a2332925 QDK_2.3.13.zip.qpkg.md5 QDK_2.3.13.zip QDK 2.3.13 all 0b003e703a29520e98a0aca41ed0e585 RunLast_230224.qpkg.md5 RunLast_230224.qpkg RunLast 230224 all 6cb5415fe56592ca1f4e8a4f2dcc5f17 -SABnzbd_240430_arm_64.qpkg.md5 SABnzbd_240430_arm_64.qpkg SABnzbd 240430 a64 26077703edac2df59e484d7c121fae3e -SABnzbd_240430_arm-x19.qpkg.md5 SABnzbd_240430_arm-x19.qpkg SABnzbd 240430 a19 fbf4a04d0b375bfef5a579503bcb2b4c -SABnzbd_240430_arm-x31.qpkg.md5 SABnzbd_240430_arm-x31.qpkg SABnzbd 240430 a31 28fe815ab09fb061d4e49cdceebc1307 -SABnzbd_240430_arm-x41.qpkg.md5 SABnzbd_240430_arm-x41.qpkg SABnzbd 240430 a41 00fcb5999253a8b54abf61efe8d31838 -SABnzbd_240430_x86_64.qpkg.md5 SABnzbd_240430_x86_64.qpkg SABnzbd 240430 i64 6dfcb889133644d5ee63c7b1c1633c4a -SABnzbd_240430_x86.qpkg.md5 SABnzbd_240430_x86.qpkg SABnzbd 240430 i86 086d96f57a76a4bc5477253fddba4cfa +SABnzbd_240501_arm_64.qpkg.md5 SABnzbd_240501_arm_64.qpkg SABnzbd 240501 a64 9e5258da7bf2a536f780ba74f43d4266 +SABnzbd_240501_arm-x19.qpkg.md5 SABnzbd_240501_arm-x19.qpkg SABnzbd 240501 a19 db0d7e993ebd3fcdf2be2b47f79f2360 +SABnzbd_240501_arm-x31.qpkg.md5 SABnzbd_240501_arm-x31.qpkg SABnzbd 240501 a31 9a3edc7587a6ae4e96b60723eca90baf +SABnzbd_240501_arm-x41.qpkg.md5 SABnzbd_240501_arm-x41.qpkg SABnzbd 240501 a41 d757b63a4254d3005843941d6dde33df +SABnzbd_240501_x86_64.qpkg.md5 SABnzbd_240501_x86_64.qpkg SABnzbd 240501 i64 3af16e355b2104085abfd31cb7a65cd7 +SABnzbd_240501_x86.qpkg.md5 SABnzbd_240501_x86.qpkg SABnzbd 240501 i86 dfa8bea8e849bf57d97386bc7aa620ea sha3sum_230312_x86_64.qpkg.md5 sha3sum_230312_x86_64.qpkg sha3sum 230312 i64 6ceba9116e0dbcbdb4e6112f0c02f8c0 sha3sum_230312_x86.qpkg.md5 sha3sum_230312_x86.qpkg sha3sum 230312 i86 fdba9d16b88a5b6e3b04483ca77706dd -sherpa_240430.qpkg.md5 sherpa_240430.qpkg sherpa 240430 all 053a424cd894b958a298f9a6979d96ae +sherpa_240501.qpkg.md5 sherpa_240501.qpkg sherpa 240501 all 2c4c229195230406c326bd9dcabdfe78 SortMyQPKGs_240427.qpkg.md5 SortMyQPKGs_240427.qpkg SortMyQPKGs 240427 all 9392283f02079fa586f8d03d96f0be17 Unrar_6.2.5_arm_64.qpkg.md5 Unrar_6.2.5_arm_64.qpkg Unrar 6.2.5 a64 e2382b80908fc9549bbb00058968082a Unrar_6.2.5_arm-x41.qpkg.md5 Unrar_6.2.5_arm-x41.qpkg Unrar 6.2.5 a41 ac1ff1149258db5e4c0b8165774eda37 Unrar_6.2.5_x86_64.qpkg.md5 Unrar_6.2.5_x86_64.qpkg Unrar 6.2.5 i64 f29dc4c271a0a1341d2dad78eb34d2ca -WebSSH_240430_arm_64.qpkg.md5 WebSSH_240430_arm_64.qpkg WebSSH 240430 a64 f1f92c3bc312343564d25bdafd015de0 -WebSSH_240430_x86_64.qpkg.md5 WebSSH_240430_x86_64.qpkg WebSSH 240430 i64 b903427974ee57aba84ada8636e59853 -WebSSH_240430_x86.qpkg.md5 WebSSH_240430_x86.qpkg WebSSH 240430 i86 7b26e7aad60afd59937b81bafa749e95 +WebSSH_240501_arm_64.qpkg.md5 WebSSH_240501_arm_64.qpkg WebSSH 240501 a64 2ab2bf22812aac2c8df457b514d1e004 +WebSSH_240501_x86_64.qpkg.md5 WebSSH_240501_x86_64.qpkg WebSSH 240501 i64 e14b469efe07b291f9b515caa1c1d80d +WebSSH_240501_x86.qpkg.md5 WebSSH_240501_x86.qpkg WebSSH 240501 i86 6465bc74d82d170c11a5ecea60b4bded diff --git a/support/list-object-inits.sh b/support/list-object-inits.sh index 95e6a3334..e396af8ac 100755 --- a/support/list-object-inits.sh +++ b/support/list-object-inits.sh @@ -2,10 +2,8 @@ . vars.source || exit -source_pathfile=$source_path/$objects_file +a=$support_path/$objects_file -[[ ! -e $source_pathfile ]] && ./build-objects.sh +[[ ! -e $a ]] && ./build-objects.sh -grep '.Init()' "$source_pathfile" | sort - -exit 0 +grep '.Init()' "$a" | sort diff --git a/support/list-unused-functions.sh b/support/list-unused-functions.sh index eb2d978c4..847dabbd5 100755 --- a/support/list-unused-functions.sh +++ b/support/list-unused-functions.sh @@ -2,12 +2,12 @@ . vars.source || exit -source_pathfile=$source_path/$management_source_file -target_func='' +a=$support_path/$management_source_file +b='' # shellcheck disable=SC2013 -for target_func in $(grep '()$' "$source_pathfile" | grep -v '=\|\$\|_(' | sed 's|()||g'); do - case $target_func in +for b in $(grep '()$' "$a" | grep -v '=\|\$\|_(' | sed 's|()||g'); do + case $b in IPKs:upgrade|IPKs:install|IPKs:downgrade|PIPs:install) # called by constructing the function name with vars. continue # ;; @@ -15,8 +15,8 @@ for target_func in $(grep '()$' "$source_pathfile" | grep -v '=\|\$\|_(' | sed ' # continue esac - if [[ $(grep -ow "$target_func" < "$source_pathfile" | wc -l) -eq 1 ]]; then - echo "$target_func()" + if [[ $(grep -ow "$b" < "$a" | wc -l) -eq 1 ]]; then + echo "$b()" fi done diff --git a/support/packages.source b/support/packages.source index 4cc0711b2..89bf5216e 100644 --- a/support/packages.source +++ b/support/packages.source @@ -11,6 +11,31 @@ MIN_PERL_VER=5382 # Keep this up-to-date with Entware Perl version, so IPK u # Use pseudo-alpha-sorted QPKG name order (i.e. disregard character-case and leading 'O'). # Indent QPKGs with the same name but different arch. +QPKG_NAME+=(Bazarr) +QPKG_ARCH+=(all) +QPKG_VERSION+=() +QPKG_HASH+=() +QPKG_URL+=(/) +QPKG_MIN_RAM_KB+=(none) +QPKG_MIN_OS_VERSION+=(400) +QPKG_MAX_OS_VERSION+=(none) +QPKG_AUTHOR+=('OneCD (OneCDOnly on GitHub)') +QPKG_AUTHOR_EMAIL+=("onecdonly@gmail.com") +QPKG_APPL_AUTHOR+=('morpheus65535 on GitHub') +QPKG_APPL_AUTHOR_EMAIL+=(none) +QPKG_APPL_VERSION+=(dynamic) +QPKG_DESC+=('a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.') +QPKG_NOTE+=(none) +QPKG_ABBRVS+=('bz ba baz bazar bazarr') +QPKG_CONFLICTS_WITH+=(none) +QPKG_DEPENDS_ON+=(Entware) +QPKG_REQUIRES_IPKS+=('python3-certifi python3-cffi python3-cryptodome python3-cryptography python3-dev python3-mako python3-pillow python3-pip python3-pyopenssl python3-requests python3-setuptools python3-yaml') +QPKG_CAN_BACKUP+=(true) +QPKG_CAN_RESTART_TO_UPDATE+=(true) +QPKG_CAN_CLEAN+=(true) +QPKG_CAN_LOG_SERVICE_OPERATIONS+=(true) +QPKG_TEST_FOR_ACTIVE+=(builtin) + QPKG_NAME+=(ClamAV) QPKG_ARCH+=(all) QPKG_VERSION+=() diff --git a/support/service-library.source b/support/service-library.source index 2db917166..a666f0c32 100644 --- a/support/service-library.source +++ b/support/service-library.source @@ -258,7 +258,6 @@ StartQPKGLibrary() fi CloneGitRepo || { SetError; return 1 ;} - InstallAddons || { SetError; return 1 ;} if IsNotDaemon; then if [[ $userlink_pathfile != undefined ]]; then @@ -333,6 +332,7 @@ StartQPKGLibrary() fi fi + InstallAddons || { SetError; return 1 ;} [[ -e $(GetLaunchTarget) ]] || { SetError; return 1 ;} EnsureConfigFileExists LoadPorts app || { SetError; return 1 ;} @@ -2095,13 +2095,17 @@ RequestLatestRelease() # Input: # $1 = URL to check. - # $1 = arch to match. + # $2 = arch to match (optional). [[ -n $1 && $1 != undefined ]] || return - [[ -n $2 && $2 != undefined ]] || return + + local a='' # https://gist.github.com/steinwaywhw/a4cd19cda655b8249d908261a62687f8 - /sbin/curl${download_opts} "$1" | /bin/grep browser_download_url | cut -d\" -f4 | /bin/grep "$2" + a=$(/sbin/curl${download_opts} "$1" | /bin/grep browser_download_url | cut -d\" -f4) + [[ -n ${2:-} && ${2:-} != undefined ]] && a=$(/bin/grep "$2" <<< "$a") + + echo -n "$a" } 2>/dev/null diff --git a/support/service.lib b/support/service.lib index e8dd54353..3c7e00aac 100644 --- a/support/service.lib +++ b/support/service.lib @@ -22,7 +22,7 @@ #* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. #* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. #* You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/ -readonly SERVICE_LIB_VERSION='240428' +readonly SERVICE_LIB_VERSION='240430' InitLibrary() { IsQNAP || exit @@ -231,7 +231,6 @@ else DisplayCommitToLog false fi CloneGitRepo || { SetError;return 1 ;} -InstallAddons || { SetError;return 1 ;} if IsNotDaemon;then if [[ $userlink_pathfile != undefined ]];then if [[ ! -L $userlink_pathfile && -e $launcher_pathfile ]];then @@ -289,6 +288,7 @@ unzip_extract_opts="$unzip_extract_verbose -o $source_archive_pathfile -d $qpkg_ DisplayRunAndLog 'extract release package' "/usr/bin/unzip${unzip_extract_opts} 2>/dev/null || /bin/tar${tar_extract_opts}" log:failure-only fi fi +InstallAddons || { SetError;return 1 ;} [[ -e $(GetLaunchTarget) ]] || { SetError;return 1 ;} EnsureConfigFileExists LoadPorts app || { SetError;return 1 ;} @@ -1367,8 +1367,10 @@ return 1 RequestLatestRelease() { [[ -n $1 && $1 != undefined ]] || return -[[ -n $2 && $2 != undefined ]] || return -/sbin/curl${download_opts} "$1" | /bin/grep browser_download_url | cut -d\" -f4 | /bin/grep "$2" +local a='' +a=$(/sbin/curl${download_opts} "$1" | /bin/grep browser_download_url | cut -d\" -f4) +[[ -n ${2:-} && ${2:-} != undefined ]] && a=$(/bin/grep "$2" <<< "$a") +echo -n "$a" } 2>/dev/null SetServiceAction() { diff --git a/support/sherpa-manager.source b/support/sherpa-manager.source index b2b1126dd..5b8329671 100755 --- a/support/sherpa-manager.source +++ b/support/sherpa-manager.source @@ -270,7 +270,7 @@ LoadConsts() readonly PACKAGE_SUPPORTS_BACKUP_COL_WIDTH=9 readonly PACKAGE_SUPPORTS_CLEAN_COL_WIDTH=8 readonly PACKAGE_SUPPORTS_RESTART_TO_UPDATE_COL_WIDTH=10 - readonly PACKAGE_TIER_COL_WIDTH=18 + readonly PACKAGE_TIER_COL_WIDTH=14 readonly PACKAGE_VER_COL_WIDTH=15 # For reports and onscreen display. @@ -5228,6 +5228,14 @@ DisplayAsFeaturesReportTitleLine() printf "%-$((PACKAGE_TIER_COL_WIDTH+2+$(LenANSIDiff "$a")))s" "$a" fi + # column 7: NAS arch is compatible? + + if [[ $report_cols_max -ge 7 ]]; then + printf "%$((COLUMN_SPACING))s" + a="${CHARS_BULLET}Compatible?" + printf "%-$((PACKAGE_ARCH_COL_WIDTH+2+$(LenANSIDiff "$a")))s" "$a" + fi + printf '\n' } @@ -5239,6 +5247,7 @@ DisplayAsFeaturesReportItemLine() # $qpkg_name (global). local active_test_msg=$CHARS_BLANK + local arch_msg=$CHARS_BLANK local backup_msg=$CHARS_BLANK local clean_msg=$CHARS_BLANK local mode='' @@ -5284,6 +5293,12 @@ DisplayAsFeaturesReportItemLine() tier_msg+=false fi + if QpkgIsArchOK; then + arch_msg+=true + else + arch_msg+=false + fi + case $mode in normal) if [[ $active_test_msg =~ true ]]; then @@ -5292,6 +5307,12 @@ DisplayAsFeaturesReportItemLine() active_test_msg=$(TextBrightOrange "$active_test_msg") fi + if [[ $arch_msg =~ true ]]; then + arch_msg=$(TextBrightGreen "$arch_msg") + else + arch_msg=$(TextBrightRed "$arch_msg") + fi + if [[ $backup_msg =~ true ]]; then backup_msg=$(TextBrightGreen "$backup_msg") else @@ -5321,6 +5342,13 @@ DisplayAsFeaturesReportItemLine() ;; muted) active_test_msg=$(TextDarkGrey "$active_test_msg") + + if [[ $arch_msg =~ true ]]; then + arch_msg=$(TextDarkGrey "$arch_msg") + else + arch_msg=$(TextBrightOrange "$arch_msg") + fi + backup_msg=$(TextDarkGrey "$backup_msg") clean_msg=$(TextDarkGrey "$clean_msg") name_msg+=$(TextDarkGrey "$qpkg_name") @@ -5334,6 +5362,12 @@ DisplayAsFeaturesReportItemLine() active_test_msg=$(TextBrightOrange "$active_test_msg") fi + if [[ $arch_msg =~ true ]]; then + arch_msg=$(TextBrightGreen "$arch_msg") + else + arch_msg=$(TextBrightOrange "$arch_msg") + fi + if [[ $backup_msg =~ true ]]; then backup_msg=$(TextBrightGreen "$backup_msg") else @@ -5396,6 +5430,13 @@ DisplayAsFeaturesReportItemLine() printf "%-$((PACKAGE_TIER_COL_WIDTH+$(LenANSIDiff "$tier_msg")))s" "$tier_msg" fi + # column 7: NAS arch is compatible? + + if [[ $report_cols_max -ge 7 ]]; then + printf "%$((COLUMN_SPACING))s" + printf "%-$((PACKAGE_ARCH_COL_WIDTH+$(LenANSIDiff "$arch_msg")))s" "$arch_msg" + fi + printf '\n' } @@ -7347,7 +7388,7 @@ ShowReportFeatures() FuncInit local a='' - report_cols_max=6 + report_cols_max=7 local -i m=0 local -i n=0 @@ -7383,6 +7424,7 @@ ShowReportFeatures() DisplayAsColumnExplainedIndentItem 'Restart?' "service-script supports restarting to update application." DisplayAsColumnExplainedIndentItem 'Test?' "service-script has a builtin 'status' check, and can test for daemon live status." DisplayAsColumnExplainedIndentItem 'Independent?' "this QPKG is independent of other QPKGs." + DisplayAsColumnExplainedIndentItem 'Compatible?' "QPKG is compatible with this NAS arch." } >> "$REPORT_OUTPUT_PATHFILE" @@ -9460,10 +9502,10 @@ _QPKG:deactivate_() SaveActionResultToLog QPKG "$qpkg_name" deactivate skipped 'QPKG is not installed' MarkThisAcForkAsSkipped z=1 - elif [[ $qpkg_name = sherpa ]]; then - SaveActionResultToLog QPKG "$qpkg_name" deactivate skipped "it's needed here! 😉" - MarkThisAcForkAsSkipped - z=1 +# elif [[ $qpkg_name = sherpa ]]; then +# SaveActionResultToLog QPKG "$qpkg_name" deactivate skipped "it's needed here! 😉" +# MarkThisAcForkAsSkipped +# z=1 elif ! QpkgIsRepoOk; then SaveActionResultToLog QPKG "$qpkg_name" deactivate skipped "QPKG is assigned to another repository, please 'reassign' it first" MarkThisAcForkAsSkipped @@ -9598,10 +9640,10 @@ _QPKG:disable_() SaveActionResultToLog QPKG "$qpkg_name" disable skipped 'QPKG is already disabled' MarkThisAcForkAsSkipped z=1 - elif [[ $qpkg_name = sherpa ]]; then - SaveActionResultToLog QPKG "$qpkg_name" disable skipped "it's needed here! 😉" - MarkThisAcForkAsSkipped - z=1 +# elif [[ $qpkg_name = sherpa ]]; then +# SaveActionResultToLog QPKG "$qpkg_name" disable skipped "it's needed here! 😉" +# MarkThisAcForkAsSkipped +# z=1 elif ! QpkgIsRepoOk; then SaveActionResultToLog QPKG "$qpkg_name" disable skipped "QPKG is assigned to another repository, please 'reassign' it first" MarkThisAcForkAsSkipped diff --git a/support/update-application-versions.sh b/support/update-application-versions.sh index c9c15728e..bcfc369d4 100755 --- a/support/update-application-versions.sh +++ b/support/update-application-versions.sh @@ -3,5 +3,3 @@ . vars.source || exit git add "$packages_source_file" && git commit -m '[update] application version(s)' && git push - -exit 0 diff --git a/support/update-archives.sh b/support/update-archives.sh index 403fc4793..d2e9deb4e 100755 --- a/support/update-archives.sh +++ b/support/update-archives.sh @@ -1,18 +1,16 @@ #!/usr/bin/env bash -source_path="$HOME"/scripts/nas/sherpa/support this_path=$PWD -. $source_path/vars.source || exit +. $HOME/scripts/nas/sherpa/support/vars.source || exit + +cd "$support_path" || exit -cd "$source_path" || exit ./build-all.sh || exit -./commit.sh '[update] archives' || exit +./commit.sh '[update] management archives' || exit cd "$qpkgs_root_path" || exit git add . -git commit -m '[update] archives' || exit +git commit -m '[update] QPKG archives' || exit git push cd "$this_path" || exit - -exit 0 diff --git a/support/update-docs.sh b/support/update-docs.sh index 66053382e..bd86040eb 100755 --- a/support/update-docs.sh +++ b/support/update-docs.sh @@ -3,5 +3,3 @@ . vars.source || exit git add "$docs_path" && git commit -m '[update] readme doc(s)' && git push - -exit 0 diff --git a/support/vars.source b/support/vars.source index 300690747..672ceba11 100644 --- a/support/vars.source +++ b/support/vars.source @@ -1,13 +1,95 @@ #!/usr/bin/env bash +build_date=$(date '+%y%m%d') +build_year=$(date '+%Y') +colourful=true +title_description='a mini-package-manager for QNAP NAS' + +checksum_root_path=$HOME/scripts/nas +docs_path=$HOME/scripts/nas/sherpa/docs +qpkgs_root_path=$HOME/scripts/nas/sherpa.packages + qpkgs_path=$qpkgs_root_path/QPKGs +support_path=$HOME/scripts/nas/sherpa/support +target_path=$HOME/scripts/nas/sherpa +wiki_path=$HOME/documents/sherpa.wiki + +highest_package_versions_found_pathfile=$support_path/highest_package_versions_found.raw +highest_package_versions_found_sorted_pathfile=$support_path/highest_package_versions_found.tbl + +management_archive_file=sherpa-manager.tar.gz +management_file=sherpa-manager.sh +management_source_file=sherpa-manager.source + +objects_archive_file=objects.tar.gz +objects_file=objects + +packages_archive_file=packages.tar.gz +packages_file=packages +packages_source_file=packages.source + +service_library_file=service.lib +service_library_source_file=service-library.source + +stable_branch=stable +unstable_branch=unstable + +cdn_nzbget_dev_packages_url='https://github.com/nzbgetcom//releases/download/v' +cdn_onecd_url='https://raw.githubusercontent.com/OneCDOnly' + cdn_other_packages_url=$cdn_onecd_url/'/main/build' + cdn_sherpa_base_url=$cdn_onecd_url/sherpa + cdn_sherpa_url=$cdn_sherpa_base_url/'$useropt_branch' + cdn_sherpa_packages_url=$cdn_onecd_url/'sherpa.packages/main/QPKGs//build' +cdn_qnap_dev_packages_url='https://github.com/qnap-dev//releases/download/v' + +copyright_basic='copyright (C) 2017- OneCD' +dont_edit_msg="Please don't edit this file directly, it was built/modified programmatically with the '$(basename "$0")' script." +email=one.cd.only@gmail.com + +# Must escape ampersand chars in `read` blocks for compatibility with `sed` regex. + +read -rd '' copyright_msg << EOB +. +# +#* Contact: +#* +EOB + +read -rd '' project_msg << EOB +Project: +#* https://git.io/sherpa +# +#* Forum: +#* https://forum.qnap.com/viewtopic.php?f=320\&t=132373 +EOB + +read -rd '' tested_msg << EOB +Tested on: +#* GNU bash, version 3.2.57(2)-release (i686-pc-linux-gnu) +#* GNU bash, version 3.2.57(1)-release (aarch64-QNAP-linux-gnu) +#* Copyright (C) 2007 Free Software Foundation, Inc. +# +#* ... and periodically on: +#* GNU bash, version 5.0.17(1)-release (aarch64-openwrt-linux-gnu) +#* Copyright (C) 2019 Free Software Foundation, Inc. +EOB + +read -rd '' license_msg << EOB +License: +#* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. +# +#* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +#* You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/ +EOB + SwapTags() { - # input: - # $1 = input pathfile to process for tags. This always has a '.source' extension. - # $2 = output pathfile. + # Input: + # $1 = Input pathfile to process for tags. This always has a '.source' extension. + # $2 = Output pathfile. - # output: + # Output: # $? = 0 echo -n "swapping tags (input: '$(basename $1)', output: '$(basename $2)') ... " @@ -33,6 +115,11 @@ SwapTags() buffer=$(sed "s||${essential_pips:=essential pips}|g" <<< "$buffer") buffer=$(sed "s||${exclusion_pips:=exclusion pips}|g" <<< "$buffer") + buffer=$(sed "s||$cdn_nzbget_dev_packages_url|g" <<< "$buffer") + buffer=$(sed "s||$cdn_other_packages_url|g" <<< "$buffer") + buffer=$(sed "s||$cdn_qnap_dev_packages_url|g" <<< "$buffer") + buffer=$(sed "s||$cdn_sherpa_packages_url|g" <<< "$buffer") + [[ -e $2 ]] && chmod +w "$2" echo "$buffer" > "$2" fi @@ -44,11 +131,11 @@ SwapTags() Squeeze() { - # input: - # $1 = input pathfile to process for excess material. - # $2 = output pathfile. + # Input: + # $1 = Input pathfile to process for excess material. + # $2 = Output pathfile. - # output: + # Output: # $? = 0 echo -n 'squeezing ... ' @@ -72,6 +159,29 @@ Squeeze() } +QPKG.Abbrvs() + { + + # Input: + # $1 = QPKG name. + + # Output: + # stdout = list of abbreviations that may be used to specify this package (first package found). + # $? = 0 if successful, 1 if failed. + + local -i i=0 + + for i in "${!QPKG_NAME[@]}"; do + if [[ ${QPKG_NAME[$i]} = "${1:?package name null}" ]]; then + echo -n "${QPKG_ABBRVS[$i]}" + return 0 + fi + done + + return 1 + + } + ColourTextBrightGreen() { @@ -217,93 +327,4 @@ ShowDone() } -build_date=$(date '+%y%m%d') -build_year=$(date '+%Y') -colourful=true -title_description='a mini-package-manager for QNAP NAS' - -checksum_root_path=$HOME/scripts/nas -source_path=$HOME/scripts/nas/sherpa/support -target_path=$HOME/scripts/nas/sherpa -qpkgs_root_path=$HOME/scripts/nas/sherpa.packages - qpkgs_path=$qpkgs_root_path/QPKGs -wiki_path=$HOME/documents/sherpa.wiki -docs_path=$HOME/scripts/nas/sherpa/docs - -management_source_file=sherpa-manager.source -management_file=sherpa-manager.sh -management_archive_file=sherpa-manager.tar.gz - -objects_file=objects -objects_archive_file=objects.tar.gz - -packages_source_file=packages.source -packages_file=packages -packages_archive_file=packages.tar.gz - -highest_package_versions_found_pathfile=$source_path/highest_package_versions_found.raw -highest_package_versions_found_sorted_pathfile=$source_path/highest_package_versions_found.tbl - -service_library_source_file=service-library.source -service_library_file=service.lib - -readme_source_file=README.source -readme_file=README.md - -forum_source_file=QNAP-forum-announcement.bbcode.source -forum_file=QNAP-forum-announcement.bbcode - -stable_branch=stable -unstable_branch=unstable - -cdn_onecd_url='https://raw.githubusercontent.com/OneCDOnly' -cdn_sherpa_base_url=$cdn_onecd_url/sherpa -cdn_sherpa_url=$cdn_sherpa_base_url/'$useropt_branch' -cdn_sherpa_packages_url="$cdn_onecd_url/sherpa.packages/main/QPKGs//build" -cdn_other_packages_url="$cdn_onecd_url//main/build" -cdn_qnap_dev_packages_url='https://github.com/qnap-dev//releases/download/v' -cdn_nzbget_dev_packages_url='https://github.com/nzbgetcom//releases/download/v' - -email='' -copyright_basic='copyright (C) 2017- OneCD' -dont_edit_msg="Please don't edit this file directly, it was built/modified programmatically with the '$(basename "$0")' script." -email=one.cd.only@gmail.com - -# Must escape ampersand chars in `read` blocks for compatibility with `sed` regex. - -read -rd '' copyright_msg << EOB -. -# -#* Contact: -#* -EOB - -read -rd '' project_msg << EOB -Project: -#* https://git.io/sherpa -# -#* Forum: -#* https://forum.qnap.com/viewtopic.php?f=320\&t=132373 -EOB - -read -rd '' tested_msg << EOB -Tested on: -#* GNU bash, version 3.2.57(2)-release (i686-pc-linux-gnu) -#* GNU bash, version 3.2.57(1)-release (aarch64-QNAP-linux-gnu) -#* Copyright (C) 2007 Free Software Foundation, Inc. -# -#* ... and periodically on: -#* GNU bash, version 5.0.17(1)-release (aarch64-openwrt-linux-gnu) -#* Copyright (C) 2019 Free Software Foundation, Inc. -EOB - -read -rd '' license_msg << EOB -License: -#* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -# -#* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -#* You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/ -EOB - true diff --git a/workshop/git repo cleanup.txt b/workshop/git-repo-cleanup.txt similarity index 100% rename from workshop/git repo cleanup.txt rename to workshop/git-repo-cleanup.txt diff --git a/workshop/ideas.txt b/workshop/ideas.txt index 6a1af041e..9913ae702 100644 --- a/workshop/ideas.txt +++ b/workshop/ideas.txt @@ -1,3 +1,5 @@ +* Report column headings in bright white? + * Include QPKG version numbers in progress messages. * Allow Kapowarr to follow source git branch, release or tag. diff --git a/workshop/potential-packages/Bazarr.txt b/workshop/potential-packages/Bazarr.txt deleted file mode 100644 index 350c183ab..000000000 --- a/workshop/potential-packages/Bazarr.txt +++ /dev/null @@ -1,39 +0,0 @@ -- continous startup loop. Bazarr appears to be one of these Python apps that wants to perform its own module installations, which doesn't work in QTS. - -[/share/Public/Bazarr] # ./venv/bin/python3 ./repo-cache/bazarr.py -Bazarr starting... -/share/CACHEDEV2_DATA/Public/Bazarr/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. - warnings.warn("Setuptools is replacing distutils.") -2024-01-26 07:25:53,595 - root (7f9192f010) : INFO (init:90) - BAZARR installing requirements... -2024-01-26 07:26:26,709 - root (7f9192f010) : INFO (init:102) - BAZARR requirements installed. -2024-01-26 07:26:26,719 - root (7f9192f010) : INFO (init:109) - Bazarr is being restarted... -Bazarr is restarting... -/share/CACHEDEV2_DATA/Public/Bazarr/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. - warnings.warn("Setuptools is replacing distutils.") -2024-01-26 07:26:43,388 - root (7f7ac35010) : INFO (init:90) - BAZARR installing requirements... -2024-01-26 07:26:49,835 - root (7f7ac35010) : INFO (init:102) - BAZARR requirements installed. -2024-01-26 07:26:49,836 - root (7f7ac35010) : INFO (init:109) - Bazarr is being restarted... -Bazarr is restarting... -/share/CACHEDEV2_DATA/Public/Bazarr/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. - warnings.warn("Setuptools is replacing distutils.") -2024-01-26 07:27:04,736 - root (7f8cf6b010) : INFO (init:90) - BAZARR installing requirements... -2024-01-26 07:27:11,149 - root (7f8cf6b010) : INFO (init:102) - BAZARR requirements installed. -2024-01-26 07:27:11,150 - root (7f8cf6b010) : INFO (init:109) - Bazarr is being restarted... -Bazarr is restarting... -/share/CACHEDEV2_DATA/Public/Bazarr/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. - warnings.warn("Setuptools is replacing distutils.") -2024-01-26 07:27:25,700 - root (7f94a87010) : INFO (init:90) - BAZARR installing requirements... -2024-01-26 07:27:32,120 - root (7f94a87010) : INFO (init:102) - BAZARR requirements installed. -2024-01-26 07:27:32,121 - root (7f94a87010) : INFO (init:109) - Bazarr is being restarted... -Bazarr is restarting... -/share/CACHEDEV2_DATA/Public/Bazarr/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. - warnings.warn("Setuptools is replacing distutils.") -2024-01-26 07:27:46,880 - root (7fa9acd010) : INFO (init:90) - BAZARR installing requirements... -2024-01-26 07:27:53,277 - root (7fa9acd010) : INFO (init:102) - BAZARR requirements installed. -2024-01-26 07:27:53,278 - root (7fa9acd010) : INFO (init:109) - Bazarr is being restarted... -Bazarr is restarting... -/share/CACHEDEV2_DATA/Public/Bazarr/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. - warnings.warn("Setuptools is replacing distutils.") -2024-01-26 07:28:07,834 - root (7f93912010) : INFO (init:90) - BAZARR installing requirements... -^CBazarr exited. -^C