diff --git a/QPKGs/ClamAV/build/ClamAV_240212.qpkg b/QPKGs/ClamAV/build/ClamAV_240212.qpkg new file mode 100644 index 000000000..dcffe3265 Binary files /dev/null and b/QPKGs/ClamAV/build/ClamAV_240212.qpkg differ diff --git a/QPKGs/ClamAV/build/ClamAV_240212.qpkg.md5 b/QPKGs/ClamAV/build/ClamAV_240212.qpkg.md5 new file mode 100644 index 000000000..d3b5c2ae5 --- /dev/null +++ b/QPKGs/ClamAV/build/ClamAV_240212.qpkg.md5 @@ -0,0 +1 @@ +cd2ef82a294e3078af0a41763c01d882 build/ClamAV_240212.qpkg diff --git a/QPKGs/ClamAV/build/ClamAV_240218.qpkg b/QPKGs/ClamAV/build/ClamAV_240218.qpkg new file mode 100644 index 000000000..bad8ec237 Binary files /dev/null and b/QPKGs/ClamAV/build/ClamAV_240218.qpkg differ diff --git a/QPKGs/ClamAV/build/ClamAV_240218.qpkg.md5 b/QPKGs/ClamAV/build/ClamAV_240218.qpkg.md5 new file mode 100644 index 000000000..fb477dbd2 --- /dev/null +++ b/QPKGs/ClamAV/build/ClamAV_240218.qpkg.md5 @@ -0,0 +1 @@ +5a226a12052bdd9329e2d0f9ff02dfff build/ClamAV_240218.qpkg diff --git a/QPKGs/ClamAV/build/ClamAV_240219.qpkg b/QPKGs/ClamAV/build/ClamAV_240219.qpkg new file mode 100644 index 000000000..8e75f65db Binary files /dev/null and b/QPKGs/ClamAV/build/ClamAV_240219.qpkg differ diff --git a/QPKGs/ClamAV/build/ClamAV_240219.qpkg.md5 b/QPKGs/ClamAV/build/ClamAV_240219.qpkg.md5 new file mode 100644 index 000000000..960b0c6f4 --- /dev/null +++ b/QPKGs/ClamAV/build/ClamAV_240219.qpkg.md5 @@ -0,0 +1 @@ +43757abfc7a28053cb46bcf3e69efb9f build/ClamAV_240219.qpkg diff --git a/QPKGs/ClamAV/qpkg.cfg b/QPKGs/ClamAV/qpkg.cfg index 5c261b638..e327b4667 100644 --- a/QPKGs/ClamAV/qpkg.cfg +++ b/QPKGs/ClamAV/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="ClamAV" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="clamav.sh" diff --git a/QPKGs/ClamAV/shared/clamav.sh b/QPKGs/ClamAV/shared/clamav.sh index 4cc902b2a..a30df89f0 100755 --- a/QPKGs/ClamAV/shared/clamav.sh +++ b/QPKGs/ClamAV/shared/clamav.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=ClamAV -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=4 InitService() { diff --git a/QPKGs/Glances/build/Glances_240212.qpkg b/QPKGs/Glances/build/Glances_240212.qpkg new file mode 100644 index 000000000..d7e951f7e Binary files /dev/null and b/QPKGs/Glances/build/Glances_240212.qpkg differ diff --git a/QPKGs/Glances/build/Glances_240212.qpkg.md5 b/QPKGs/Glances/build/Glances_240212.qpkg.md5 new file mode 100644 index 000000000..3166f2c1f --- /dev/null +++ b/QPKGs/Glances/build/Glances_240212.qpkg.md5 @@ -0,0 +1 @@ +532f664bb2c052e218b2afda33d7cdec build/Glances_240212.qpkg diff --git a/QPKGs/Glances/build/Glances_240218.qpkg b/QPKGs/Glances/build/Glances_240218.qpkg new file mode 100644 index 000000000..d80df0c24 Binary files /dev/null and b/QPKGs/Glances/build/Glances_240218.qpkg differ diff --git a/QPKGs/Glances/build/Glances_240218.qpkg.md5 b/QPKGs/Glances/build/Glances_240218.qpkg.md5 new file mode 100644 index 000000000..2e21d4709 --- /dev/null +++ b/QPKGs/Glances/build/Glances_240218.qpkg.md5 @@ -0,0 +1 @@ +411743dddaa9ee835c61e829d92ea3f6 build/Glances_240218.qpkg diff --git a/QPKGs/Glances/build/Glances_240219.qpkg b/QPKGs/Glances/build/Glances_240219.qpkg new file mode 100644 index 000000000..328cef866 Binary files /dev/null and b/QPKGs/Glances/build/Glances_240219.qpkg differ diff --git a/QPKGs/Glances/build/Glances_240219.qpkg.md5 b/QPKGs/Glances/build/Glances_240219.qpkg.md5 new file mode 100644 index 000000000..eb8a1a1b4 --- /dev/null +++ b/QPKGs/Glances/build/Glances_240219.qpkg.md5 @@ -0,0 +1 @@ +f6ce1b2697a162856f81823ed1339537 build/Glances_240219.qpkg diff --git a/QPKGs/Glances/build/Glances_240225.qpkg b/QPKGs/Glances/build/Glances_240225.qpkg new file mode 100644 index 000000000..15ae6fd05 Binary files /dev/null and b/QPKGs/Glances/build/Glances_240225.qpkg differ diff --git a/QPKGs/Glances/build/Glances_240225.qpkg.md5 b/QPKGs/Glances/build/Glances_240225.qpkg.md5 new file mode 100644 index 000000000..4bd9e2516 --- /dev/null +++ b/QPKGs/Glances/build/Glances_240225.qpkg.md5 @@ -0,0 +1 @@ +68f94fede067ce98419b882b49bf2d6d build/Glances_240225.qpkg diff --git a/QPKGs/Glances/qpkg.cfg b/QPKGs/Glances/qpkg.cfg index 5d671528d..c16f56aec 100644 --- a/QPKGs/Glances/qpkg.cfg +++ b/QPKGs/Glances/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="Glances" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="glances.sh" diff --git a/QPKGs/Glances/shared/glances.sh b/QPKGs/Glances/shared/glances.sh index f61ab1436..c3a015b09 100755 --- a/QPKGs/Glances/shared/glances.sh +++ b/QPKGs/Glances/shared/glances.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=Glances -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=6 InitService() { diff --git a/QPKGs/Headphones/build/Headphones_240212.qpkg b/QPKGs/Headphones/build/Headphones_240212.qpkg new file mode 100644 index 000000000..3d1492e92 Binary files /dev/null and b/QPKGs/Headphones/build/Headphones_240212.qpkg differ diff --git a/QPKGs/Headphones/build/Headphones_240212.qpkg.md5 b/QPKGs/Headphones/build/Headphones_240212.qpkg.md5 new file mode 100644 index 000000000..8e3eb66cb --- /dev/null +++ b/QPKGs/Headphones/build/Headphones_240212.qpkg.md5 @@ -0,0 +1 @@ +75732899122e00e7d65a21a1bc3fef56 build/Headphones_240212.qpkg diff --git a/QPKGs/Headphones/build/Headphones_240218.qpkg b/QPKGs/Headphones/build/Headphones_240218.qpkg new file mode 100644 index 000000000..30d22c47e Binary files /dev/null and b/QPKGs/Headphones/build/Headphones_240218.qpkg differ diff --git a/QPKGs/Headphones/build/Headphones_240218.qpkg.md5 b/QPKGs/Headphones/build/Headphones_240218.qpkg.md5 new file mode 100644 index 000000000..5108f79f9 --- /dev/null +++ b/QPKGs/Headphones/build/Headphones_240218.qpkg.md5 @@ -0,0 +1 @@ +ca314e0095bb84a4d39d0b85a0b43ad3 build/Headphones_240218.qpkg diff --git a/QPKGs/Headphones/build/Headphones_240219.qpkg b/QPKGs/Headphones/build/Headphones_240219.qpkg new file mode 100644 index 000000000..4ce2a05ab Binary files /dev/null and b/QPKGs/Headphones/build/Headphones_240219.qpkg differ diff --git a/QPKGs/Headphones/build/Headphones_240219.qpkg.md5 b/QPKGs/Headphones/build/Headphones_240219.qpkg.md5 new file mode 100644 index 000000000..d9ff2fca0 --- /dev/null +++ b/QPKGs/Headphones/build/Headphones_240219.qpkg.md5 @@ -0,0 +1 @@ +e4ede2703a5c670564ab6492cdff02af build/Headphones_240219.qpkg diff --git a/QPKGs/Headphones/build/Headphones_240225.qpkg b/QPKGs/Headphones/build/Headphones_240225.qpkg new file mode 100644 index 000000000..3af69d0f6 Binary files /dev/null and b/QPKGs/Headphones/build/Headphones_240225.qpkg differ diff --git a/QPKGs/Headphones/build/Headphones_240225.qpkg.md5 b/QPKGs/Headphones/build/Headphones_240225.qpkg.md5 new file mode 100644 index 000000000..2de481ed9 --- /dev/null +++ b/QPKGs/Headphones/build/Headphones_240225.qpkg.md5 @@ -0,0 +1 @@ +49bb54425eee08b0e7dc451f0c8b4120 build/Headphones_240225.qpkg diff --git a/QPKGs/Headphones/qpkg.cfg b/QPKGs/Headphones/qpkg.cfg index 51cf68b7e..a0c0fb8fd 100644 --- a/QPKGs/Headphones/qpkg.cfg +++ b/QPKGs/Headphones/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="Headphones" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="headphones.sh" diff --git a/QPKGs/Headphones/shared/headphones.sh b/QPKGs/Headphones/shared/headphones.sh index 5c2fc513a..d8c42e8a5 100755 --- a/QPKGs/Headphones/shared/headphones.sh +++ b/QPKGs/Headphones/shared/headphones.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=Headphones -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/Kapowarr/build/Kapowarr_240212_arm_64.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240212_arm_64.qpkg new file mode 100644 index 000000000..8c04190d1 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240212_arm_64.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240212_arm_64.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..fdd2d8aa8 --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +340218e7e7dbd4d48c71a4ce6707bef4 build/Kapowarr_240212_arm_64.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240212_x86.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240212_x86.qpkg new file mode 100644 index 000000000..a57c3f9e0 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240212_x86.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240212_x86.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240212_x86.qpkg.md5 new file mode 100644 index 000000000..c5e00a734 --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240212_x86.qpkg.md5 @@ -0,0 +1 @@ +92cb112c50dbcfbc031f6973509be0a1 build/Kapowarr_240212_x86.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240212_x86_64.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240212_x86_64.qpkg new file mode 100644 index 000000000..af2a13201 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240212_x86_64.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240212_x86_64.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..2373f343b --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +c917d66171630b45eafea183f615da04 build/Kapowarr_240212_x86_64.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240218_arm_64.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240218_arm_64.qpkg new file mode 100644 index 000000000..9fa9fcad0 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240218_arm_64.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240218_arm_64.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..6c3ff3535 --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +60f56392a2b3721148849406714d25e7 build/Kapowarr_240218_arm_64.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240218_x86.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240218_x86.qpkg new file mode 100644 index 000000000..0368c33c2 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240218_x86.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240218_x86.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240218_x86.qpkg.md5 new file mode 100644 index 000000000..438577f7f --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240218_x86.qpkg.md5 @@ -0,0 +1 @@ +d4275f211e1d8a64c9daddd18d74febc build/Kapowarr_240218_x86.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240218_x86_64.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240218_x86_64.qpkg new file mode 100644 index 000000000..60f1fe6bc Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240218_x86_64.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240218_x86_64.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..c9baa7f5a --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +ab55c5f0f623887b4ea342f26d40bb7f build/Kapowarr_240218_x86_64.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240219_arm_64.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240219_arm_64.qpkg new file mode 100644 index 000000000..e46e9014d Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240219_arm_64.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240219_arm_64.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..9cb9b16d3 --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +303ff12b86368e435161d2700ba74cf0 build/Kapowarr_240219_arm_64.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240219_x86.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240219_x86.qpkg new file mode 100644 index 000000000..81dc24ba4 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240219_x86.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240219_x86.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240219_x86.qpkg.md5 new file mode 100644 index 000000000..a7caba88a --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240219_x86.qpkg.md5 @@ -0,0 +1 @@ +a8a9138f43548d4d46d62f6c267f607d build/Kapowarr_240219_x86.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240219_x86_64.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240219_x86_64.qpkg new file mode 100644 index 000000000..1b1eac1d0 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240219_x86_64.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240219_x86_64.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..dd72a40c0 --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +3e13c580cb44b5670217023384ee3cb4 build/Kapowarr_240219_x86_64.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240225_arm_64.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240225_arm_64.qpkg new file mode 100644 index 000000000..a782473c7 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240225_arm_64.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240225_arm_64.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240225_arm_64.qpkg.md5 new file mode 100644 index 000000000..5e9ec5e99 --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240225_arm_64.qpkg.md5 @@ -0,0 +1 @@ +fc066d30be28b32c654bdcb2f5294b6e build/Kapowarr_240225_arm_64.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240225_x86.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240225_x86.qpkg new file mode 100644 index 000000000..17c332b2d Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240225_x86.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240225_x86.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240225_x86.qpkg.md5 new file mode 100644 index 000000000..b0f95ba53 --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240225_x86.qpkg.md5 @@ -0,0 +1 @@ +c8c645c1f1ef580b9b0d2d21333e2676 build/Kapowarr_240225_x86.qpkg diff --git a/QPKGs/Kapowarr/build/Kapowarr_240225_x86_64.qpkg b/QPKGs/Kapowarr/build/Kapowarr_240225_x86_64.qpkg new file mode 100644 index 000000000..13fe37758 Binary files /dev/null and b/QPKGs/Kapowarr/build/Kapowarr_240225_x86_64.qpkg differ diff --git a/QPKGs/Kapowarr/build/Kapowarr_240225_x86_64.qpkg.md5 b/QPKGs/Kapowarr/build/Kapowarr_240225_x86_64.qpkg.md5 new file mode 100644 index 000000000..b75b1b454 --- /dev/null +++ b/QPKGs/Kapowarr/build/Kapowarr_240225_x86_64.qpkg.md5 @@ -0,0 +1 @@ +c1c53982e3aae4b4c7025264a8ccc4a4 build/Kapowarr_240225_x86_64.qpkg diff --git a/QPKGs/Kapowarr/qpkg.cfg b/QPKGs/Kapowarr/qpkg.cfg index 46e2526e1..a28da81c5 100644 --- a/QPKGs/Kapowarr/qpkg.cfg +++ b/QPKGs/Kapowarr/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="Kapowarr" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="kapowarr.sh" diff --git a/QPKGs/Kapowarr/shared/kapowarr.sh b/QPKGs/Kapowarr/shared/kapowarr.sh index b220aa6bc..9798fb99b 100755 --- a/QPKGs/Kapowarr/shared/kapowarr.sh +++ b/QPKGs/Kapowarr/shared/kapowarr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=Kapowarr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_arm_64.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_arm_64.qpkg new file mode 100644 index 000000000..e794bb6b4 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_arm_64.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_arm_64.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..c239ac4a5 --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +4d495d71ece238c7ab36ef43b56d7c61 build/LazyLibrarian_240212_arm_64.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86.qpkg new file mode 100644 index 000000000..5c738bf90 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86.qpkg.md5 new file mode 100644 index 000000000..0e2095d6c --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86.qpkg.md5 @@ -0,0 +1 @@ +bcbf4d49dba8d59e9572565081879033 build/LazyLibrarian_240212_x86.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86_64.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86_64.qpkg new file mode 100644 index 000000000..dc7792232 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86_64.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86_64.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..f0b5c2acb --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +3930e69c5ec0310fc54c312607638a90 build/LazyLibrarian_240212_x86_64.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_arm_64.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_arm_64.qpkg new file mode 100644 index 000000000..f910e9e5d Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_arm_64.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_arm_64.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..94fa88e64 --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +61d7580da6bd8ea8a06e151e2cb1ff51 build/LazyLibrarian_240218_arm_64.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86.qpkg new file mode 100644 index 000000000..b5a49b115 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86.qpkg.md5 new file mode 100644 index 000000000..904f6c333 --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86.qpkg.md5 @@ -0,0 +1 @@ +b7d2438ce51e441f6eb69d9ebe589544 build/LazyLibrarian_240218_x86.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86_64.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86_64.qpkg new file mode 100644 index 000000000..d8d93e9f2 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86_64.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86_64.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..e6c262532 --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +9bdf61e72ea6131f6c10a52aace0f42f build/LazyLibrarian_240218_x86_64.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_arm_64.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_arm_64.qpkg new file mode 100644 index 000000000..b06dfb32e Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_arm_64.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_arm_64.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..58c3b7d62 --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +98ec63dc97d5cffcea1dca39ff8b567f build/LazyLibrarian_240219_arm_64.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86.qpkg new file mode 100644 index 000000000..056b74992 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86.qpkg.md5 new file mode 100644 index 000000000..df91ab198 --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86.qpkg.md5 @@ -0,0 +1 @@ +74d51421cf8085c27fe6059376989c84 build/LazyLibrarian_240219_x86.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86_64.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86_64.qpkg new file mode 100644 index 000000000..cd2e639a8 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86_64.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86_64.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..48e80a35e --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +2f7e8945dfdcf7d0434cd5a3e861597f build/LazyLibrarian_240219_x86_64.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_arm_64.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_arm_64.qpkg new file mode 100644 index 000000000..dad319ac3 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_arm_64.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_arm_64.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_arm_64.qpkg.md5 new file mode 100644 index 000000000..942e321ae --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_arm_64.qpkg.md5 @@ -0,0 +1 @@ +33c2eb876acbceee51cb8eec6c2ae875 build/LazyLibrarian_240225_arm_64.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86.qpkg new file mode 100644 index 000000000..a3a0f6fca Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86.qpkg.md5 new file mode 100644 index 000000000..db9f30c71 --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86.qpkg.md5 @@ -0,0 +1 @@ +a782935822133e871b0beffa26e0c32d build/LazyLibrarian_240225_x86.qpkg diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86_64.qpkg b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86_64.qpkg new file mode 100644 index 000000000..27b2c27c0 Binary files /dev/null and b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86_64.qpkg differ diff --git a/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86_64.qpkg.md5 b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86_64.qpkg.md5 new file mode 100644 index 000000000..337a11af9 --- /dev/null +++ b/QPKGs/LazyLibrarian/build/LazyLibrarian_240225_x86_64.qpkg.md5 @@ -0,0 +1 @@ +484e29ef83f6408748c6869d5e0b67c9 build/LazyLibrarian_240225_x86_64.qpkg diff --git a/QPKGs/LazyLibrarian/qpkg.cfg b/QPKGs/LazyLibrarian/qpkg.cfg index f1e159cb6..b8bd7c66e 100644 --- a/QPKGs/LazyLibrarian/qpkg.cfg +++ b/QPKGs/LazyLibrarian/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="LazyLibrarian" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="lazylibrarian.sh" diff --git a/QPKGs/LazyLibrarian/shared/lazylibrarian.sh b/QPKGs/LazyLibrarian/shared/lazylibrarian.sh index 4b4951220..8be277a84 100755 --- a/QPKGs/LazyLibrarian/shared/lazylibrarian.sh +++ b/QPKGs/LazyLibrarian/shared/lazylibrarian.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=LazyLibrarian -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/Mylar3/build/Mylar3_240212_arm_64.qpkg b/QPKGs/Mylar3/build/Mylar3_240212_arm_64.qpkg new file mode 100644 index 000000000..3d0a5dc8d Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240212_arm_64.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240212_arm_64.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..506381ca0 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +28f9b7ab050792a2fa1646b5f6cf587c build/Mylar3_240212_arm_64.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240212_x86.qpkg b/QPKGs/Mylar3/build/Mylar3_240212_x86.qpkg new file mode 100644 index 000000000..b5457ea85 Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240212_x86.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240212_x86.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240212_x86.qpkg.md5 new file mode 100644 index 000000000..9dfe67b9f --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240212_x86.qpkg.md5 @@ -0,0 +1 @@ +fdc4758624e7ae0861715203cd993f9c build/Mylar3_240212_x86.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240212_x86_64.qpkg b/QPKGs/Mylar3/build/Mylar3_240212_x86_64.qpkg new file mode 100644 index 000000000..5e60ad19a Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240212_x86_64.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240212_x86_64.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..bf7946664 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +a526a2f32ab9186b554736a71164d7b0 build/Mylar3_240212_x86_64.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240218_arm_64.qpkg b/QPKGs/Mylar3/build/Mylar3_240218_arm_64.qpkg new file mode 100644 index 000000000..066d40cbd Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240218_arm_64.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240218_arm_64.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..2ad263367 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +ceb68f63179c0ea5ce4cf3bc73c48030 build/Mylar3_240218_arm_64.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240218_x86.qpkg b/QPKGs/Mylar3/build/Mylar3_240218_x86.qpkg new file mode 100644 index 000000000..86eb7753a Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240218_x86.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240218_x86.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240218_x86.qpkg.md5 new file mode 100644 index 000000000..3f719fbe8 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240218_x86.qpkg.md5 @@ -0,0 +1 @@ +62876b90674f1985cafcfca9f899b463 build/Mylar3_240218_x86.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240218_x86_64.qpkg b/QPKGs/Mylar3/build/Mylar3_240218_x86_64.qpkg new file mode 100644 index 000000000..4d5654dd5 Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240218_x86_64.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240218_x86_64.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..5ca88db86 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +63b26457b0cbb8c3e37e1dd928be3ca7 build/Mylar3_240218_x86_64.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240219_arm_64.qpkg b/QPKGs/Mylar3/build/Mylar3_240219_arm_64.qpkg new file mode 100644 index 000000000..fa8dc3e13 Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240219_arm_64.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240219_arm_64.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..0c31fad0a --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +d7c8c0e71ffc6d62533d985e0770e9a0 build/Mylar3_240219_arm_64.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240219_x86.qpkg b/QPKGs/Mylar3/build/Mylar3_240219_x86.qpkg new file mode 100644 index 000000000..3f5cbb449 Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240219_x86.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240219_x86.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240219_x86.qpkg.md5 new file mode 100644 index 000000000..6f9916805 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240219_x86.qpkg.md5 @@ -0,0 +1 @@ +d8a008735c45c7ff7f92499cea75a0a7 build/Mylar3_240219_x86.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240219_x86_64.qpkg b/QPKGs/Mylar3/build/Mylar3_240219_x86_64.qpkg new file mode 100644 index 000000000..3ac22fa23 Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240219_x86_64.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240219_x86_64.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..ca6cf220d --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +f96a12a45915e2138964cb03f25d0978 build/Mylar3_240219_x86_64.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240225_arm_64.qpkg b/QPKGs/Mylar3/build/Mylar3_240225_arm_64.qpkg new file mode 100644 index 000000000..4292af446 Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240225_arm_64.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240225_arm_64.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240225_arm_64.qpkg.md5 new file mode 100644 index 000000000..ea027b3f5 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240225_arm_64.qpkg.md5 @@ -0,0 +1 @@ +bb3484c410b4fbc45abb788c5b79ddaa build/Mylar3_240225_arm_64.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240225_x86.qpkg b/QPKGs/Mylar3/build/Mylar3_240225_x86.qpkg new file mode 100644 index 000000000..daacfcadc Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240225_x86.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240225_x86.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240225_x86.qpkg.md5 new file mode 100644 index 000000000..b7f5b37b0 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240225_x86.qpkg.md5 @@ -0,0 +1 @@ +372cc564c6ae7f341133af60b70b2a1a build/Mylar3_240225_x86.qpkg diff --git a/QPKGs/Mylar3/build/Mylar3_240225_x86_64.qpkg b/QPKGs/Mylar3/build/Mylar3_240225_x86_64.qpkg new file mode 100644 index 000000000..42fcad20a Binary files /dev/null and b/QPKGs/Mylar3/build/Mylar3_240225_x86_64.qpkg differ diff --git a/QPKGs/Mylar3/build/Mylar3_240225_x86_64.qpkg.md5 b/QPKGs/Mylar3/build/Mylar3_240225_x86_64.qpkg.md5 new file mode 100644 index 000000000..0a6dbabf0 --- /dev/null +++ b/QPKGs/Mylar3/build/Mylar3_240225_x86_64.qpkg.md5 @@ -0,0 +1 @@ +a67e47c17b4029924f1d4e02bf9c9963 build/Mylar3_240225_x86_64.qpkg diff --git a/QPKGs/Mylar3/qpkg.cfg b/QPKGs/Mylar3/qpkg.cfg index d94777b85..bdf0ef4a9 100644 --- a/QPKGs/Mylar3/qpkg.cfg +++ b/QPKGs/Mylar3/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="Mylar3" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="mylar3.sh" diff --git a/QPKGs/Mylar3/shared/mylar3.sh b/QPKGs/Mylar3/shared/mylar3.sh index 1143f2e30..fb173249e 100755 --- a/QPKGs/Mylar3/shared/mylar3.sh +++ b/QPKGs/Mylar3/shared/mylar3.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=Mylar3 -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/NZBGet/build/NZBGet_240212.qpkg b/QPKGs/NZBGet/build/NZBGet_240212.qpkg new file mode 100644 index 000000000..5f97584d5 Binary files /dev/null and b/QPKGs/NZBGet/build/NZBGet_240212.qpkg differ diff --git a/QPKGs/NZBGet/build/NZBGet_240212.qpkg.md5 b/QPKGs/NZBGet/build/NZBGet_240212.qpkg.md5 new file mode 100644 index 000000000..ff5ae1fd3 --- /dev/null +++ b/QPKGs/NZBGet/build/NZBGet_240212.qpkg.md5 @@ -0,0 +1 @@ +317e42d0030149e55ae8008877b77698 build/NZBGet_240212.qpkg diff --git a/QPKGs/NZBGet/build/NZBGet_240218.qpkg b/QPKGs/NZBGet/build/NZBGet_240218.qpkg new file mode 100644 index 000000000..7834c80af Binary files /dev/null and b/QPKGs/NZBGet/build/NZBGet_240218.qpkg differ diff --git a/QPKGs/NZBGet/build/NZBGet_240218.qpkg.md5 b/QPKGs/NZBGet/build/NZBGet_240218.qpkg.md5 new file mode 100644 index 000000000..be3cdc26d --- /dev/null +++ b/QPKGs/NZBGet/build/NZBGet_240218.qpkg.md5 @@ -0,0 +1 @@ +6c5cce4dcdbf0d84f1499936fdae57df build/NZBGet_240218.qpkg diff --git a/QPKGs/NZBGet/build/NZBGet_240219.qpkg b/QPKGs/NZBGet/build/NZBGet_240219.qpkg new file mode 100644 index 000000000..3e71e83df Binary files /dev/null and b/QPKGs/NZBGet/build/NZBGet_240219.qpkg differ diff --git a/QPKGs/NZBGet/build/NZBGet_240219.qpkg.md5 b/QPKGs/NZBGet/build/NZBGet_240219.qpkg.md5 new file mode 100644 index 000000000..98fe00853 --- /dev/null +++ b/QPKGs/NZBGet/build/NZBGet_240219.qpkg.md5 @@ -0,0 +1 @@ +43052f9fbac0609125a5600830f315c2 build/NZBGet_240219.qpkg diff --git a/QPKGs/NZBGet/qpkg.cfg b/QPKGs/NZBGet/qpkg.cfg index 791b92be0..9e4338c69 100644 --- a/QPKGs/NZBGet/qpkg.cfg +++ b/QPKGs/NZBGet/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="NZBGet" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="nzbget.sh" diff --git a/QPKGs/NZBGet/shared/nzbget.sh b/QPKGs/NZBGet/shared/nzbget.sh index 0ddd2c194..f2cb03bfd 100755 --- a/QPKGs/NZBGet/shared/nzbget.sh +++ b/QPKGs/NZBGet/shared/nzbget.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=NZBGet -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=3 InitService() { diff --git a/QPKGs/NZBHydra2/arm_64/nzbhydra2.sh b/QPKGs/NZBHydra2/arm_64/nzbhydra2.sh index f761c9388..6a5338a7f 100755 --- a/QPKGs/NZBHydra2/arm_64/nzbhydra2.sh +++ b/QPKGs/NZBHydra2/arm_64/nzbhydra2.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=NZBHydra2 -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240212_arm_64.qpkg b/QPKGs/NZBHydra2/build/NZBHydra2_240212_arm_64.qpkg new file mode 100644 index 000000000..c3fff8cfa Binary files /dev/null and b/QPKGs/NZBHydra2/build/NZBHydra2_240212_arm_64.qpkg differ diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240212_arm_64.qpkg.md5 b/QPKGs/NZBHydra2/build/NZBHydra2_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..a744bbc1b --- /dev/null +++ b/QPKGs/NZBHydra2/build/NZBHydra2_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +6d69678b536031a92cdef77392a684dc build/NZBHydra2_240212_arm_64.qpkg diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240212_x86_64.qpkg b/QPKGs/NZBHydra2/build/NZBHydra2_240212_x86_64.qpkg new file mode 100644 index 000000000..d48cf10ab Binary files /dev/null and b/QPKGs/NZBHydra2/build/NZBHydra2_240212_x86_64.qpkg differ diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240212_x86_64.qpkg.md5 b/QPKGs/NZBHydra2/build/NZBHydra2_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..46b967b74 --- /dev/null +++ b/QPKGs/NZBHydra2/build/NZBHydra2_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +c82e7756a6f906f790711064031030fe build/NZBHydra2_240212_x86_64.qpkg diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240218_arm_64.qpkg b/QPKGs/NZBHydra2/build/NZBHydra2_240218_arm_64.qpkg new file mode 100644 index 000000000..02b1a008d Binary files /dev/null and b/QPKGs/NZBHydra2/build/NZBHydra2_240218_arm_64.qpkg differ diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240218_arm_64.qpkg.md5 b/QPKGs/NZBHydra2/build/NZBHydra2_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..fc1c768e2 --- /dev/null +++ b/QPKGs/NZBHydra2/build/NZBHydra2_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +feb043f6bed612635b195fe81eca7772 build/NZBHydra2_240218_arm_64.qpkg diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240218_x86_64.qpkg b/QPKGs/NZBHydra2/build/NZBHydra2_240218_x86_64.qpkg new file mode 100644 index 000000000..fc9971c9d Binary files /dev/null and b/QPKGs/NZBHydra2/build/NZBHydra2_240218_x86_64.qpkg differ diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240218_x86_64.qpkg.md5 b/QPKGs/NZBHydra2/build/NZBHydra2_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..c1374f046 --- /dev/null +++ b/QPKGs/NZBHydra2/build/NZBHydra2_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +bcd29778d85bc4dcb5e6c58a7bc7ee7d build/NZBHydra2_240218_x86_64.qpkg diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240219_arm_64.qpkg b/QPKGs/NZBHydra2/build/NZBHydra2_240219_arm_64.qpkg new file mode 100644 index 000000000..5950bffc0 Binary files /dev/null and b/QPKGs/NZBHydra2/build/NZBHydra2_240219_arm_64.qpkg differ diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240219_arm_64.qpkg.md5 b/QPKGs/NZBHydra2/build/NZBHydra2_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..3d7374972 --- /dev/null +++ b/QPKGs/NZBHydra2/build/NZBHydra2_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +982a4d30c6e74585fa36a9e287b649c5 build/NZBHydra2_240219_arm_64.qpkg diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240219_x86_64.qpkg b/QPKGs/NZBHydra2/build/NZBHydra2_240219_x86_64.qpkg new file mode 100644 index 000000000..fbcb5e1db Binary files /dev/null and b/QPKGs/NZBHydra2/build/NZBHydra2_240219_x86_64.qpkg differ diff --git a/QPKGs/NZBHydra2/build/NZBHydra2_240219_x86_64.qpkg.md5 b/QPKGs/NZBHydra2/build/NZBHydra2_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..ecc06df4a --- /dev/null +++ b/QPKGs/NZBHydra2/build/NZBHydra2_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +6f9a720decf6622e2e38576f147d7d37 build/NZBHydra2_240219_x86_64.qpkg diff --git a/QPKGs/NZBHydra2/qpkg.cfg b/QPKGs/NZBHydra2/qpkg.cfg index 7b732ccf0..010e061e5 100644 --- a/QPKGs/NZBHydra2/qpkg.cfg +++ b/QPKGs/NZBHydra2/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="NZBHydra2" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="nzbhydra2.sh" diff --git a/QPKGs/NZBHydra2/x86_64/nzbhydra2.sh b/QPKGs/NZBHydra2/x86_64/nzbhydra2.sh index 56289a91e..bc0813d00 100755 --- a/QPKGs/NZBHydra2/x86_64/nzbhydra2.sh +++ b/QPKGs/NZBHydra2/x86_64/nzbhydra2.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=NZBHydra2 -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OLidarr/arm_64/olidarr.sh b/QPKGs/OLidarr/arm_64/olidarr.sh index ecd020562..2d3c8da1c 100755 --- a/QPKGs/OLidarr/arm_64/olidarr.sh +++ b/QPKGs/OLidarr/arm_64/olidarr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OLidarr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OLidarr/build/OLidarr_240212_arm_64.qpkg b/QPKGs/OLidarr/build/OLidarr_240212_arm_64.qpkg new file mode 100644 index 000000000..9c81af092 Binary files /dev/null and b/QPKGs/OLidarr/build/OLidarr_240212_arm_64.qpkg differ diff --git a/QPKGs/OLidarr/build/OLidarr_240212_arm_64.qpkg.md5 b/QPKGs/OLidarr/build/OLidarr_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..1ae7fbd2e --- /dev/null +++ b/QPKGs/OLidarr/build/OLidarr_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +661fa2607eb155303725cfb629cdce5b build/OLidarr_240212_arm_64.qpkg diff --git a/QPKGs/OLidarr/build/OLidarr_240212_x86_64.qpkg b/QPKGs/OLidarr/build/OLidarr_240212_x86_64.qpkg new file mode 100644 index 000000000..00e9a7276 Binary files /dev/null and b/QPKGs/OLidarr/build/OLidarr_240212_x86_64.qpkg differ diff --git a/QPKGs/OLidarr/build/OLidarr_240212_x86_64.qpkg.md5 b/QPKGs/OLidarr/build/OLidarr_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..ada28418d --- /dev/null +++ b/QPKGs/OLidarr/build/OLidarr_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +18c28b8d6a3bd20d2a9e7c7acd287d77 build/OLidarr_240212_x86_64.qpkg diff --git a/QPKGs/OLidarr/build/OLidarr_240218_arm_64.qpkg b/QPKGs/OLidarr/build/OLidarr_240218_arm_64.qpkg new file mode 100644 index 000000000..7c1055897 Binary files /dev/null and b/QPKGs/OLidarr/build/OLidarr_240218_arm_64.qpkg differ diff --git a/QPKGs/OLidarr/build/OLidarr_240218_arm_64.qpkg.md5 b/QPKGs/OLidarr/build/OLidarr_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..df4972c4b --- /dev/null +++ b/QPKGs/OLidarr/build/OLidarr_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +0e924caa2495897838278a1e12369ad7 build/OLidarr_240218_arm_64.qpkg diff --git a/QPKGs/OLidarr/build/OLidarr_240218_x86_64.qpkg b/QPKGs/OLidarr/build/OLidarr_240218_x86_64.qpkg new file mode 100644 index 000000000..fd20118d2 Binary files /dev/null and b/QPKGs/OLidarr/build/OLidarr_240218_x86_64.qpkg differ diff --git a/QPKGs/OLidarr/build/OLidarr_240218_x86_64.qpkg.md5 b/QPKGs/OLidarr/build/OLidarr_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..6e416745c --- /dev/null +++ b/QPKGs/OLidarr/build/OLidarr_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +7981ac4244f3bc20efdfd24d878f0801 build/OLidarr_240218_x86_64.qpkg diff --git a/QPKGs/OLidarr/build/OLidarr_240219_arm_64.qpkg b/QPKGs/OLidarr/build/OLidarr_240219_arm_64.qpkg new file mode 100644 index 000000000..7b646ba8d Binary files /dev/null and b/QPKGs/OLidarr/build/OLidarr_240219_arm_64.qpkg differ diff --git a/QPKGs/OLidarr/build/OLidarr_240219_arm_64.qpkg.md5 b/QPKGs/OLidarr/build/OLidarr_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..3beb259b4 --- /dev/null +++ b/QPKGs/OLidarr/build/OLidarr_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +a520780e3a1c20029767cc6944bea898 build/OLidarr_240219_arm_64.qpkg diff --git a/QPKGs/OLidarr/build/OLidarr_240219_x86_64.qpkg b/QPKGs/OLidarr/build/OLidarr_240219_x86_64.qpkg new file mode 100644 index 000000000..41609e014 Binary files /dev/null and b/QPKGs/OLidarr/build/OLidarr_240219_x86_64.qpkg differ diff --git a/QPKGs/OLidarr/build/OLidarr_240219_x86_64.qpkg.md5 b/QPKGs/OLidarr/build/OLidarr_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..d93c89eae --- /dev/null +++ b/QPKGs/OLidarr/build/OLidarr_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +928d2acda70a064fea42537266f1fad7 build/OLidarr_240219_x86_64.qpkg diff --git a/QPKGs/OLidarr/qpkg.cfg b/QPKGs/OLidarr/qpkg.cfg index 108c964ce..12c9e0919 100644 --- a/QPKGs/OLidarr/qpkg.cfg +++ b/QPKGs/OLidarr/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OLidarr" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="olidarr.sh" diff --git a/QPKGs/OLidarr/x86_64/olidarr.sh b/QPKGs/OLidarr/x86_64/olidarr.sh index 857a2d542..1d4ca4f54 100755 --- a/QPKGs/OLidarr/x86_64/olidarr.sh +++ b/QPKGs/OLidarr/x86_64/olidarr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OLidarr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OMedusa/build/OMedusa_240212.qpkg b/QPKGs/OMedusa/build/OMedusa_240212.qpkg new file mode 100644 index 000000000..a1cb56920 Binary files /dev/null and b/QPKGs/OMedusa/build/OMedusa_240212.qpkg differ diff --git a/QPKGs/OMedusa/build/OMedusa_240212.qpkg.md5 b/QPKGs/OMedusa/build/OMedusa_240212.qpkg.md5 new file mode 100644 index 000000000..b3b4466fe --- /dev/null +++ b/QPKGs/OMedusa/build/OMedusa_240212.qpkg.md5 @@ -0,0 +1 @@ +f11f828165f77f2d2584722db52ed594 build/OMedusa_240212.qpkg diff --git a/QPKGs/OMedusa/build/OMedusa_240218.qpkg b/QPKGs/OMedusa/build/OMedusa_240218.qpkg new file mode 100644 index 000000000..9c9c79934 Binary files /dev/null and b/QPKGs/OMedusa/build/OMedusa_240218.qpkg differ diff --git a/QPKGs/OMedusa/build/OMedusa_240218.qpkg.md5 b/QPKGs/OMedusa/build/OMedusa_240218.qpkg.md5 new file mode 100644 index 000000000..169327785 --- /dev/null +++ b/QPKGs/OMedusa/build/OMedusa_240218.qpkg.md5 @@ -0,0 +1 @@ +09307b992010953ba5e12f2ab1ed8742 build/OMedusa_240218.qpkg diff --git a/QPKGs/OMedusa/build/OMedusa_240219.qpkg b/QPKGs/OMedusa/build/OMedusa_240219.qpkg new file mode 100644 index 000000000..b4d0a0500 Binary files /dev/null and b/QPKGs/OMedusa/build/OMedusa_240219.qpkg differ diff --git a/QPKGs/OMedusa/build/OMedusa_240219.qpkg.md5 b/QPKGs/OMedusa/build/OMedusa_240219.qpkg.md5 new file mode 100644 index 000000000..fd68e2da2 --- /dev/null +++ b/QPKGs/OMedusa/build/OMedusa_240219.qpkg.md5 @@ -0,0 +1 @@ +e0016717e54129b5b027e1540f0ab8a9 build/OMedusa_240219.qpkg diff --git a/QPKGs/OMedusa/build/OMedusa_240225.qpkg b/QPKGs/OMedusa/build/OMedusa_240225.qpkg new file mode 100644 index 000000000..18d655270 Binary files /dev/null and b/QPKGs/OMedusa/build/OMedusa_240225.qpkg differ diff --git a/QPKGs/OMedusa/build/OMedusa_240225.qpkg.md5 b/QPKGs/OMedusa/build/OMedusa_240225.qpkg.md5 new file mode 100644 index 000000000..1f32a097e --- /dev/null +++ b/QPKGs/OMedusa/build/OMedusa_240225.qpkg.md5 @@ -0,0 +1 @@ +fc4c95055e78bf613ca12dadf5c01fb4 build/OMedusa_240225.qpkg diff --git a/QPKGs/OMedusa/qpkg.cfg b/QPKGs/OMedusa/qpkg.cfg index c86d01a5c..15e8efbb1 100644 --- a/QPKGs/OMedusa/qpkg.cfg +++ b/QPKGs/OMedusa/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OMedusa" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="omedusa.sh" diff --git a/QPKGs/OMedusa/shared/omedusa.sh b/QPKGs/OMedusa/shared/omedusa.sh index 1be4ac862..4ab7b38dc 100755 --- a/QPKGs/OMedusa/shared/omedusa.sh +++ b/QPKGs/OMedusa/shared/omedusa.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OMedusa -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/OReadarr/arm_64/oreadarr.sh b/QPKGs/OReadarr/arm_64/oreadarr.sh index e92cf4356..8c3a70737 100755 --- a/QPKGs/OReadarr/arm_64/oreadarr.sh +++ b/QPKGs/OReadarr/arm_64/oreadarr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OReadarr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OReadarr/build/OReadarr_240212_arm_64.qpkg b/QPKGs/OReadarr/build/OReadarr_240212_arm_64.qpkg new file mode 100644 index 000000000..c627a4601 Binary files /dev/null and b/QPKGs/OReadarr/build/OReadarr_240212_arm_64.qpkg differ diff --git a/QPKGs/OReadarr/build/OReadarr_240212_arm_64.qpkg.md5 b/QPKGs/OReadarr/build/OReadarr_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..441ca9c4e --- /dev/null +++ b/QPKGs/OReadarr/build/OReadarr_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +e105d549cacdf57285a51d30d6943ef7 build/OReadarr_240212_arm_64.qpkg diff --git a/QPKGs/OReadarr/build/OReadarr_240212_x86_64.qpkg b/QPKGs/OReadarr/build/OReadarr_240212_x86_64.qpkg new file mode 100644 index 000000000..4ac461761 Binary files /dev/null and b/QPKGs/OReadarr/build/OReadarr_240212_x86_64.qpkg differ diff --git a/QPKGs/OReadarr/build/OReadarr_240212_x86_64.qpkg.md5 b/QPKGs/OReadarr/build/OReadarr_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..2e6f1e86b --- /dev/null +++ b/QPKGs/OReadarr/build/OReadarr_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +7d0e0568723ddfa766e32d028e17e5c5 build/OReadarr_240212_x86_64.qpkg diff --git a/QPKGs/OReadarr/build/OReadarr_240218_arm_64.qpkg b/QPKGs/OReadarr/build/OReadarr_240218_arm_64.qpkg new file mode 100644 index 000000000..6d55e0621 Binary files /dev/null and b/QPKGs/OReadarr/build/OReadarr_240218_arm_64.qpkg differ diff --git a/QPKGs/OReadarr/build/OReadarr_240218_arm_64.qpkg.md5 b/QPKGs/OReadarr/build/OReadarr_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..42f0f7f85 --- /dev/null +++ b/QPKGs/OReadarr/build/OReadarr_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +205abd332a9203480d1c5eb48e45045c build/OReadarr_240218_arm_64.qpkg diff --git a/QPKGs/OReadarr/build/OReadarr_240218_x86_64.qpkg b/QPKGs/OReadarr/build/OReadarr_240218_x86_64.qpkg new file mode 100644 index 000000000..325a6e712 Binary files /dev/null and b/QPKGs/OReadarr/build/OReadarr_240218_x86_64.qpkg differ diff --git a/QPKGs/OReadarr/build/OReadarr_240218_x86_64.qpkg.md5 b/QPKGs/OReadarr/build/OReadarr_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..86184c02d --- /dev/null +++ b/QPKGs/OReadarr/build/OReadarr_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +e66a41646317ecb281f7e5b83dfd271b build/OReadarr_240218_x86_64.qpkg diff --git a/QPKGs/OReadarr/build/OReadarr_240219_arm_64.qpkg b/QPKGs/OReadarr/build/OReadarr_240219_arm_64.qpkg new file mode 100644 index 000000000..5cdc7574c Binary files /dev/null and b/QPKGs/OReadarr/build/OReadarr_240219_arm_64.qpkg differ diff --git a/QPKGs/OReadarr/build/OReadarr_240219_arm_64.qpkg.md5 b/QPKGs/OReadarr/build/OReadarr_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..3bd536432 --- /dev/null +++ b/QPKGs/OReadarr/build/OReadarr_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +4b02cbf1d71945664c92238d3ceb7a49 build/OReadarr_240219_arm_64.qpkg diff --git a/QPKGs/OReadarr/build/OReadarr_240219_x86_64.qpkg b/QPKGs/OReadarr/build/OReadarr_240219_x86_64.qpkg new file mode 100644 index 000000000..caacf2f8b Binary files /dev/null and b/QPKGs/OReadarr/build/OReadarr_240219_x86_64.qpkg differ diff --git a/QPKGs/OReadarr/build/OReadarr_240219_x86_64.qpkg.md5 b/QPKGs/OReadarr/build/OReadarr_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..5e3a8b01c --- /dev/null +++ b/QPKGs/OReadarr/build/OReadarr_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +a4685fff7768af4d3f361d9cb1b80a67 build/OReadarr_240219_x86_64.qpkg diff --git a/QPKGs/OReadarr/qpkg.cfg b/QPKGs/OReadarr/qpkg.cfg index 497c666a6..ed9c12e04 100644 --- a/QPKGs/OReadarr/qpkg.cfg +++ b/QPKGs/OReadarr/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OReadarr" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="oreadarr.sh" diff --git a/QPKGs/OReadarr/x86_64/oreadarr.sh b/QPKGs/OReadarr/x86_64/oreadarr.sh index 502618a00..3d9118a02 100755 --- a/QPKGs/OReadarr/x86_64/oreadarr.sh +++ b/QPKGs/OReadarr/x86_64/oreadarr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OReadarr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OSickGear/build/OSickGear_240212_arm_64.qpkg b/QPKGs/OSickGear/build/OSickGear_240212_arm_64.qpkg new file mode 100644 index 000000000..4f8e375b9 Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240212_arm_64.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240212_arm_64.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..c62f3764f --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +0a8ddaf00e412520f9cfaeb1f345c5c5 build/OSickGear_240212_arm_64.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240212_x86.qpkg b/QPKGs/OSickGear/build/OSickGear_240212_x86.qpkg new file mode 100644 index 000000000..24969aa9a Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240212_x86.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240212_x86.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240212_x86.qpkg.md5 new file mode 100644 index 000000000..9bf35cf19 --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240212_x86.qpkg.md5 @@ -0,0 +1 @@ +239f69ba4f43167556c516704b99ccde build/OSickGear_240212_x86.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240212_x86_64.qpkg b/QPKGs/OSickGear/build/OSickGear_240212_x86_64.qpkg new file mode 100644 index 000000000..8b787d87d Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240212_x86_64.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240212_x86_64.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..650f77d2c --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +4080a7d8fdd7f666f887f70671ee31c7 build/OSickGear_240212_x86_64.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240218_arm_64.qpkg b/QPKGs/OSickGear/build/OSickGear_240218_arm_64.qpkg new file mode 100644 index 000000000..9d355a4bd Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240218_arm_64.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240218_arm_64.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..001351d44 --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +f51834fe6536020ad9d0ec234968b14a build/OSickGear_240218_arm_64.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240218_x86.qpkg b/QPKGs/OSickGear/build/OSickGear_240218_x86.qpkg new file mode 100644 index 000000000..fabc6fd7a Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240218_x86.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240218_x86.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240218_x86.qpkg.md5 new file mode 100644 index 000000000..a121ce44b --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240218_x86.qpkg.md5 @@ -0,0 +1 @@ +f70f04802ab5884e84ee6b8f9fa47b11 build/OSickGear_240218_x86.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240218_x86_64.qpkg b/QPKGs/OSickGear/build/OSickGear_240218_x86_64.qpkg new file mode 100644 index 000000000..dddfb955d Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240218_x86_64.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240218_x86_64.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..2c3909c7b --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +63ca53e3f49c45a1d6b97f9f43da244f build/OSickGear_240218_x86_64.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240219_arm_64.qpkg b/QPKGs/OSickGear/build/OSickGear_240219_arm_64.qpkg new file mode 100644 index 000000000..012a2f7bd Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240219_arm_64.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240219_arm_64.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..4ab36bd66 --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +3d1237ad56ec4feb56ae6d78013b7d9a build/OSickGear_240219_arm_64.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240219_x86.qpkg b/QPKGs/OSickGear/build/OSickGear_240219_x86.qpkg new file mode 100644 index 000000000..fb8c13afe Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240219_x86.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240219_x86.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240219_x86.qpkg.md5 new file mode 100644 index 000000000..6a1491871 --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240219_x86.qpkg.md5 @@ -0,0 +1 @@ +a90f0525067b53ae125cc18c5a0096ee build/OSickGear_240219_x86.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240219_x86_64.qpkg b/QPKGs/OSickGear/build/OSickGear_240219_x86_64.qpkg new file mode 100644 index 000000000..0f963df07 Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240219_x86_64.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240219_x86_64.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..83ec44dba --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +af5a5209726b0053557fd9c83ee1ce21 build/OSickGear_240219_x86_64.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240225_arm_64.qpkg b/QPKGs/OSickGear/build/OSickGear_240225_arm_64.qpkg new file mode 100644 index 000000000..af69c2b0b Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240225_arm_64.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240225_arm_64.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240225_arm_64.qpkg.md5 new file mode 100644 index 000000000..06ca90037 --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240225_arm_64.qpkg.md5 @@ -0,0 +1 @@ +efa2aecffa7e995f1c7e82f88425e2f3 build/OSickGear_240225_arm_64.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240225_x86.qpkg b/QPKGs/OSickGear/build/OSickGear_240225_x86.qpkg new file mode 100644 index 000000000..52651e1df Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240225_x86.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240225_x86.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240225_x86.qpkg.md5 new file mode 100644 index 000000000..62e0dbaf5 --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240225_x86.qpkg.md5 @@ -0,0 +1 @@ +428c0d4b80fa0bf8655a5b2d39110074 build/OSickGear_240225_x86.qpkg diff --git a/QPKGs/OSickGear/build/OSickGear_240225_x86_64.qpkg b/QPKGs/OSickGear/build/OSickGear_240225_x86_64.qpkg new file mode 100644 index 000000000..95309c882 Binary files /dev/null and b/QPKGs/OSickGear/build/OSickGear_240225_x86_64.qpkg differ diff --git a/QPKGs/OSickGear/build/OSickGear_240225_x86_64.qpkg.md5 b/QPKGs/OSickGear/build/OSickGear_240225_x86_64.qpkg.md5 new file mode 100644 index 000000000..1a2f2a7fe --- /dev/null +++ b/QPKGs/OSickGear/build/OSickGear_240225_x86_64.qpkg.md5 @@ -0,0 +1 @@ +7fe09723a33f55bdc6683232f4612499 build/OSickGear_240225_x86_64.qpkg diff --git a/QPKGs/OSickGear/qpkg.cfg b/QPKGs/OSickGear/qpkg.cfg index a77a0cbdb..9651cf63d 100644 --- a/QPKGs/OSickGear/qpkg.cfg +++ b/QPKGs/OSickGear/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OSickGear" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="osickgear.sh" diff --git a/QPKGs/OSickGear/shared/osickgear.sh b/QPKGs/OSickGear/shared/osickgear.sh index 9610f4ff7..5b722ba6f 100755 --- a/QPKGs/OSickGear/shared/osickgear.sh +++ b/QPKGs/OSickGear/shared/osickgear.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OSickGear -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/OSonarr/arm_64/osonarr.sh b/QPKGs/OSonarr/arm_64/osonarr.sh index 8aba5b464..84bf6ba64 100755 --- a/QPKGs/OSonarr/arm_64/osonarr.sh +++ b/QPKGs/OSonarr/arm_64/osonarr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OSonarr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OSonarr/build/OSonarr_240212_arm_64.qpkg b/QPKGs/OSonarr/build/OSonarr_240212_arm_64.qpkg new file mode 100644 index 000000000..647aac03a Binary files /dev/null and b/QPKGs/OSonarr/build/OSonarr_240212_arm_64.qpkg differ diff --git a/QPKGs/OSonarr/build/OSonarr_240212_arm_64.qpkg.md5 b/QPKGs/OSonarr/build/OSonarr_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..7b3ad75a4 --- /dev/null +++ b/QPKGs/OSonarr/build/OSonarr_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +1f8ecbabb056879f1135d15d33130aa3 build/OSonarr_240212_arm_64.qpkg diff --git a/QPKGs/OSonarr/build/OSonarr_240212_x86_64.qpkg b/QPKGs/OSonarr/build/OSonarr_240212_x86_64.qpkg new file mode 100644 index 000000000..733900118 Binary files /dev/null and b/QPKGs/OSonarr/build/OSonarr_240212_x86_64.qpkg differ diff --git a/QPKGs/OSonarr/build/OSonarr_240212_x86_64.qpkg.md5 b/QPKGs/OSonarr/build/OSonarr_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..bae3478cd --- /dev/null +++ b/QPKGs/OSonarr/build/OSonarr_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +d2edf5d2b3692234651fe59bbf56dcf3 build/OSonarr_240212_x86_64.qpkg diff --git a/QPKGs/OSonarr/build/OSonarr_240218_arm_64.qpkg b/QPKGs/OSonarr/build/OSonarr_240218_arm_64.qpkg new file mode 100644 index 000000000..d2edfa054 Binary files /dev/null and b/QPKGs/OSonarr/build/OSonarr_240218_arm_64.qpkg differ diff --git a/QPKGs/OSonarr/build/OSonarr_240218_arm_64.qpkg.md5 b/QPKGs/OSonarr/build/OSonarr_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..ca9bd9414 --- /dev/null +++ b/QPKGs/OSonarr/build/OSonarr_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +0690a5fab5b31fb1ef155494a0dd3e8b build/OSonarr_240218_arm_64.qpkg diff --git a/QPKGs/OSonarr/build/OSonarr_240218_x86_64.qpkg b/QPKGs/OSonarr/build/OSonarr_240218_x86_64.qpkg new file mode 100644 index 000000000..05135009d Binary files /dev/null and b/QPKGs/OSonarr/build/OSonarr_240218_x86_64.qpkg differ diff --git a/QPKGs/OSonarr/build/OSonarr_240218_x86_64.qpkg.md5 b/QPKGs/OSonarr/build/OSonarr_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..2f0aff764 --- /dev/null +++ b/QPKGs/OSonarr/build/OSonarr_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +1cced7f969e10edd0ff22241d5f99404 build/OSonarr_240218_x86_64.qpkg diff --git a/QPKGs/OSonarr/build/OSonarr_240219_arm_64.qpkg b/QPKGs/OSonarr/build/OSonarr_240219_arm_64.qpkg new file mode 100644 index 000000000..41b614579 Binary files /dev/null and b/QPKGs/OSonarr/build/OSonarr_240219_arm_64.qpkg differ diff --git a/QPKGs/OSonarr/build/OSonarr_240219_arm_64.qpkg.md5 b/QPKGs/OSonarr/build/OSonarr_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..d98f05953 --- /dev/null +++ b/QPKGs/OSonarr/build/OSonarr_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +84a457b5659aef704a258bd221c1fa2d build/OSonarr_240219_arm_64.qpkg diff --git a/QPKGs/OSonarr/build/OSonarr_240219_x86_64.qpkg b/QPKGs/OSonarr/build/OSonarr_240219_x86_64.qpkg new file mode 100644 index 000000000..f5465be8b Binary files /dev/null and b/QPKGs/OSonarr/build/OSonarr_240219_x86_64.qpkg differ diff --git a/QPKGs/OSonarr/build/OSonarr_240219_x86_64.qpkg.md5 b/QPKGs/OSonarr/build/OSonarr_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..25d27a627 --- /dev/null +++ b/QPKGs/OSonarr/build/OSonarr_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +5659be199cf0299b72ebf9c5216bb8f3 build/OSonarr_240219_x86_64.qpkg diff --git a/QPKGs/OSonarr/qpkg.cfg b/QPKGs/OSonarr/qpkg.cfg index 4c65f1def..9f0a9529c 100644 --- a/QPKGs/OSonarr/qpkg.cfg +++ b/QPKGs/OSonarr/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OSonarr" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="osonarr.sh" diff --git a/QPKGs/OSonarr/x86_64/osonarr.sh b/QPKGs/OSonarr/x86_64/osonarr.sh index b959dc5f7..bc264ea22 100755 --- a/QPKGs/OSonarr/x86_64/osonarr.sh +++ b/QPKGs/OSonarr/x86_64/osonarr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OSonarr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OTautulli/build/OTautulli_240212_arm_64.qpkg b/QPKGs/OTautulli/build/OTautulli_240212_arm_64.qpkg new file mode 100644 index 000000000..2e7987c62 Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240212_arm_64.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240212_arm_64.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..6973aee37 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +824a7091444b7e4b0994104a783f0cee build/OTautulli_240212_arm_64.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240212_x86.qpkg b/QPKGs/OTautulli/build/OTautulli_240212_x86.qpkg new file mode 100644 index 000000000..9d2f058a5 Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240212_x86.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240212_x86.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240212_x86.qpkg.md5 new file mode 100644 index 000000000..83034876e --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240212_x86.qpkg.md5 @@ -0,0 +1 @@ +f2fc6a12282eea0e0be3ce014a2e7170 build/OTautulli_240212_x86.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240212_x86_64.qpkg b/QPKGs/OTautulli/build/OTautulli_240212_x86_64.qpkg new file mode 100644 index 000000000..3836a365d Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240212_x86_64.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240212_x86_64.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..cae8bddf4 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +f84cbca22e1eac5359a2ef03d403200e build/OTautulli_240212_x86_64.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240218_arm_64.qpkg b/QPKGs/OTautulli/build/OTautulli_240218_arm_64.qpkg new file mode 100644 index 000000000..db0377fc8 Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240218_arm_64.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240218_arm_64.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..4884c3312 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +f4662c6535944b44022fdcbc1e3d192e build/OTautulli_240218_arm_64.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240218_x86.qpkg b/QPKGs/OTautulli/build/OTautulli_240218_x86.qpkg new file mode 100644 index 000000000..aba6e31d8 Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240218_x86.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240218_x86.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240218_x86.qpkg.md5 new file mode 100644 index 000000000..46e5e375b --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240218_x86.qpkg.md5 @@ -0,0 +1 @@ +ef25679c833298a1487fdd837720971a build/OTautulli_240218_x86.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240218_x86_64.qpkg b/QPKGs/OTautulli/build/OTautulli_240218_x86_64.qpkg new file mode 100644 index 000000000..14c66d902 Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240218_x86_64.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240218_x86_64.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..0ca40740a --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +7fd5aac822fd44de0070e8ed12008b31 build/OTautulli_240218_x86_64.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240219_arm_64.qpkg b/QPKGs/OTautulli/build/OTautulli_240219_arm_64.qpkg new file mode 100644 index 000000000..dc955733a Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240219_arm_64.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240219_arm_64.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..7499ef3f7 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +6fcdd9b0b6c2167af01ddda533065c86 build/OTautulli_240219_arm_64.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240219_x86.qpkg b/QPKGs/OTautulli/build/OTautulli_240219_x86.qpkg new file mode 100644 index 000000000..ecdfcddbb Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240219_x86.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240219_x86.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240219_x86.qpkg.md5 new file mode 100644 index 000000000..a6c6250f8 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240219_x86.qpkg.md5 @@ -0,0 +1 @@ +5eb1cf252d57a3ef8b1e64938879c49b build/OTautulli_240219_x86.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240219_x86_64.qpkg b/QPKGs/OTautulli/build/OTautulli_240219_x86_64.qpkg new file mode 100644 index 000000000..6eba88c64 Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240219_x86_64.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240219_x86_64.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..0bfeb1265 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +db4313d9597a87d120a8a5cde6a5a94b build/OTautulli_240219_x86_64.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240225_arm_64.qpkg b/QPKGs/OTautulli/build/OTautulli_240225_arm_64.qpkg new file mode 100644 index 000000000..20f9b25fe Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240225_arm_64.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240225_arm_64.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240225_arm_64.qpkg.md5 new file mode 100644 index 000000000..e64eddb17 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240225_arm_64.qpkg.md5 @@ -0,0 +1 @@ +162260fa0e76be641335833d6dd1884e build/OTautulli_240225_arm_64.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240225_x86.qpkg b/QPKGs/OTautulli/build/OTautulli_240225_x86.qpkg new file mode 100644 index 000000000..9ff4202b2 Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240225_x86.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240225_x86.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240225_x86.qpkg.md5 new file mode 100644 index 000000000..676ea44b5 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240225_x86.qpkg.md5 @@ -0,0 +1 @@ +0a5dec1ee26d3d7f36464c19a13bcd0c build/OTautulli_240225_x86.qpkg diff --git a/QPKGs/OTautulli/build/OTautulli_240225_x86_64.qpkg b/QPKGs/OTautulli/build/OTautulli_240225_x86_64.qpkg new file mode 100644 index 000000000..4b8191837 Binary files /dev/null and b/QPKGs/OTautulli/build/OTautulli_240225_x86_64.qpkg differ diff --git a/QPKGs/OTautulli/build/OTautulli_240225_x86_64.qpkg.md5 b/QPKGs/OTautulli/build/OTautulli_240225_x86_64.qpkg.md5 new file mode 100644 index 000000000..9668335a8 --- /dev/null +++ b/QPKGs/OTautulli/build/OTautulli_240225_x86_64.qpkg.md5 @@ -0,0 +1 @@ +81ab5127dceeabe26d42b794e176933c build/OTautulli_240225_x86_64.qpkg diff --git a/QPKGs/OTautulli/qpkg.cfg b/QPKGs/OTautulli/qpkg.cfg index 5f04cfe22..e000bce9a 100644 --- a/QPKGs/OTautulli/qpkg.cfg +++ b/QPKGs/OTautulli/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OTautulli" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="otautulli.sh" diff --git a/QPKGs/OTautulli/shared/otautulli.sh b/QPKGs/OTautulli/shared/otautulli.sh index 0d9e4e765..5fd4dd907 100755 --- a/QPKGs/OTautulli/shared/otautulli.sh +++ b/QPKGs/OTautulli/shared/otautulli.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OTautulli -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/OTransmission/build/OTransmission_240212.qpkg b/QPKGs/OTransmission/build/OTransmission_240212.qpkg new file mode 100644 index 000000000..8e678ffda Binary files /dev/null and b/QPKGs/OTransmission/build/OTransmission_240212.qpkg differ diff --git a/QPKGs/OTransmission/build/OTransmission_240212.qpkg.md5 b/QPKGs/OTransmission/build/OTransmission_240212.qpkg.md5 new file mode 100644 index 000000000..2fa9cbd0f --- /dev/null +++ b/QPKGs/OTransmission/build/OTransmission_240212.qpkg.md5 @@ -0,0 +1 @@ +8c8c167d253d028eaa562c5d1740a81c build/OTransmission_240212.qpkg diff --git a/QPKGs/OTransmission/build/OTransmission_240218.qpkg b/QPKGs/OTransmission/build/OTransmission_240218.qpkg new file mode 100644 index 000000000..1e42f248a Binary files /dev/null and b/QPKGs/OTransmission/build/OTransmission_240218.qpkg differ diff --git a/QPKGs/OTransmission/build/OTransmission_240218.qpkg.md5 b/QPKGs/OTransmission/build/OTransmission_240218.qpkg.md5 new file mode 100644 index 000000000..f44c3fd63 --- /dev/null +++ b/QPKGs/OTransmission/build/OTransmission_240218.qpkg.md5 @@ -0,0 +1 @@ +94900913d86c8343d64cb3ea8c8574c7 build/OTransmission_240218.qpkg diff --git a/QPKGs/OTransmission/build/OTransmission_240219.qpkg b/QPKGs/OTransmission/build/OTransmission_240219.qpkg new file mode 100644 index 000000000..63620de97 Binary files /dev/null and b/QPKGs/OTransmission/build/OTransmission_240219.qpkg differ diff --git a/QPKGs/OTransmission/build/OTransmission_240219.qpkg.md5 b/QPKGs/OTransmission/build/OTransmission_240219.qpkg.md5 new file mode 100644 index 000000000..3ed078ea9 --- /dev/null +++ b/QPKGs/OTransmission/build/OTransmission_240219.qpkg.md5 @@ -0,0 +1 @@ +b34792283ddcbece726edf17488e0833 build/OTransmission_240219.qpkg diff --git a/QPKGs/OTransmission/qpkg.cfg b/QPKGs/OTransmission/qpkg.cfg index a0e4ee0b5..a2025216c 100644 --- a/QPKGs/OTransmission/qpkg.cfg +++ b/QPKGs/OTransmission/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OTransmission" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="otransmission.sh" diff --git a/QPKGs/OTransmission/shared/otransmission.sh b/QPKGs/OTransmission/shared/otransmission.sh index d791f23c0..d625d060c 100755 --- a/QPKGs/OTransmission/shared/otransmission.sh +++ b/QPKGs/OTransmission/shared/otransmission.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OTransmission -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=3 InitService() { diff --git a/QPKGs/OWatcher3/build/OWatcher3_240212.qpkg b/QPKGs/OWatcher3/build/OWatcher3_240212.qpkg new file mode 100644 index 000000000..0bb283f9e Binary files /dev/null and b/QPKGs/OWatcher3/build/OWatcher3_240212.qpkg differ diff --git a/QPKGs/OWatcher3/build/OWatcher3_240212.qpkg.md5 b/QPKGs/OWatcher3/build/OWatcher3_240212.qpkg.md5 new file mode 100644 index 000000000..2073c4cbc --- /dev/null +++ b/QPKGs/OWatcher3/build/OWatcher3_240212.qpkg.md5 @@ -0,0 +1 @@ +a7dd8cc6ecff2fd18a858aa11dcd8e88 build/OWatcher3_240212.qpkg diff --git a/QPKGs/OWatcher3/build/OWatcher3_240218.qpkg b/QPKGs/OWatcher3/build/OWatcher3_240218.qpkg new file mode 100644 index 000000000..f9b94ef1b Binary files /dev/null and b/QPKGs/OWatcher3/build/OWatcher3_240218.qpkg differ diff --git a/QPKGs/OWatcher3/build/OWatcher3_240218.qpkg.md5 b/QPKGs/OWatcher3/build/OWatcher3_240218.qpkg.md5 new file mode 100644 index 000000000..0f6190d3f --- /dev/null +++ b/QPKGs/OWatcher3/build/OWatcher3_240218.qpkg.md5 @@ -0,0 +1 @@ +90e5ed30d5885119c9bb73b50c0d6751 build/OWatcher3_240218.qpkg diff --git a/QPKGs/OWatcher3/build/OWatcher3_240219.qpkg b/QPKGs/OWatcher3/build/OWatcher3_240219.qpkg new file mode 100644 index 000000000..c668c16c4 Binary files /dev/null and b/QPKGs/OWatcher3/build/OWatcher3_240219.qpkg differ diff --git a/QPKGs/OWatcher3/build/OWatcher3_240219.qpkg.md5 b/QPKGs/OWatcher3/build/OWatcher3_240219.qpkg.md5 new file mode 100644 index 000000000..12e24968e --- /dev/null +++ b/QPKGs/OWatcher3/build/OWatcher3_240219.qpkg.md5 @@ -0,0 +1 @@ +b0a1e081587f1d86cd7ad6b2916899fc build/OWatcher3_240219.qpkg diff --git a/QPKGs/OWatcher3/build/OWatcher3_240225.qpkg b/QPKGs/OWatcher3/build/OWatcher3_240225.qpkg new file mode 100644 index 000000000..3dbaa2362 Binary files /dev/null and b/QPKGs/OWatcher3/build/OWatcher3_240225.qpkg differ diff --git a/QPKGs/OWatcher3/build/OWatcher3_240225.qpkg.md5 b/QPKGs/OWatcher3/build/OWatcher3_240225.qpkg.md5 new file mode 100644 index 000000000..532633347 --- /dev/null +++ b/QPKGs/OWatcher3/build/OWatcher3_240225.qpkg.md5 @@ -0,0 +1 @@ +2b29b0fd517c29f906d62bb72a518e84 build/OWatcher3_240225.qpkg diff --git a/QPKGs/OWatcher3/qpkg.cfg b/QPKGs/OWatcher3/qpkg.cfg index 6269926b4..8d4c2d21a 100644 --- a/QPKGs/OWatcher3/qpkg.cfg +++ b/QPKGs/OWatcher3/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OWatcher3" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="owatcher3.sh" diff --git a/QPKGs/OWatcher3/shared/owatcher3.sh b/QPKGs/OWatcher3/shared/owatcher3.sh index c600bc3fa..275cd4898 100755 --- a/QPKGs/OWatcher3/shared/owatcher3.sh +++ b/QPKGs/OWatcher3/shared/owatcher3.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OWatcher3 -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/OWhisparr/arm_64/owhisparr.sh b/QPKGs/OWhisparr/arm_64/owhisparr.sh index 45246c38e..f2b05a6f5 100755 --- a/QPKGs/OWhisparr/arm_64/owhisparr.sh +++ b/QPKGs/OWhisparr/arm_64/owhisparr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OWhisparr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OWhisparr/build/OWhisparr_240212_arm_64.qpkg b/QPKGs/OWhisparr/build/OWhisparr_240212_arm_64.qpkg new file mode 100644 index 000000000..e0981a8a5 Binary files /dev/null and b/QPKGs/OWhisparr/build/OWhisparr_240212_arm_64.qpkg differ diff --git a/QPKGs/OWhisparr/build/OWhisparr_240212_arm_64.qpkg.md5 b/QPKGs/OWhisparr/build/OWhisparr_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..ca2795151 --- /dev/null +++ b/QPKGs/OWhisparr/build/OWhisparr_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +f69c6eb7635189765585649683a96fd0 build/OWhisparr_240212_arm_64.qpkg diff --git a/QPKGs/OWhisparr/build/OWhisparr_240212_x86_64.qpkg b/QPKGs/OWhisparr/build/OWhisparr_240212_x86_64.qpkg new file mode 100644 index 000000000..3fdd2d9e4 Binary files /dev/null and b/QPKGs/OWhisparr/build/OWhisparr_240212_x86_64.qpkg differ diff --git a/QPKGs/OWhisparr/build/OWhisparr_240212_x86_64.qpkg.md5 b/QPKGs/OWhisparr/build/OWhisparr_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..6b933d887 --- /dev/null +++ b/QPKGs/OWhisparr/build/OWhisparr_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +cc1d687d979590088670e83ae23e543a build/OWhisparr_240212_x86_64.qpkg diff --git a/QPKGs/OWhisparr/build/OWhisparr_240218_arm_64.qpkg b/QPKGs/OWhisparr/build/OWhisparr_240218_arm_64.qpkg new file mode 100644 index 000000000..4430a1509 Binary files /dev/null and b/QPKGs/OWhisparr/build/OWhisparr_240218_arm_64.qpkg differ diff --git a/QPKGs/OWhisparr/build/OWhisparr_240218_arm_64.qpkg.md5 b/QPKGs/OWhisparr/build/OWhisparr_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..51436872e --- /dev/null +++ b/QPKGs/OWhisparr/build/OWhisparr_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +3f488358b623f706f48707e9c89ee93f build/OWhisparr_240218_arm_64.qpkg diff --git a/QPKGs/OWhisparr/build/OWhisparr_240218_x86_64.qpkg b/QPKGs/OWhisparr/build/OWhisparr_240218_x86_64.qpkg new file mode 100644 index 000000000..3b28f1e10 Binary files /dev/null and b/QPKGs/OWhisparr/build/OWhisparr_240218_x86_64.qpkg differ diff --git a/QPKGs/OWhisparr/build/OWhisparr_240218_x86_64.qpkg.md5 b/QPKGs/OWhisparr/build/OWhisparr_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..4630fff2c --- /dev/null +++ b/QPKGs/OWhisparr/build/OWhisparr_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +b0b9d174787397a12e881a21c815de33 build/OWhisparr_240218_x86_64.qpkg diff --git a/QPKGs/OWhisparr/build/OWhisparr_240219_arm_64.qpkg b/QPKGs/OWhisparr/build/OWhisparr_240219_arm_64.qpkg new file mode 100644 index 000000000..7f2ef2fbb Binary files /dev/null and b/QPKGs/OWhisparr/build/OWhisparr_240219_arm_64.qpkg differ diff --git a/QPKGs/OWhisparr/build/OWhisparr_240219_arm_64.qpkg.md5 b/QPKGs/OWhisparr/build/OWhisparr_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..0b1441414 --- /dev/null +++ b/QPKGs/OWhisparr/build/OWhisparr_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +9ae7b4d857ced315527df0d82866bdd9 build/OWhisparr_240219_arm_64.qpkg diff --git a/QPKGs/OWhisparr/build/OWhisparr_240219_x86_64.qpkg b/QPKGs/OWhisparr/build/OWhisparr_240219_x86_64.qpkg new file mode 100644 index 000000000..e06887e83 Binary files /dev/null and b/QPKGs/OWhisparr/build/OWhisparr_240219_x86_64.qpkg differ diff --git a/QPKGs/OWhisparr/build/OWhisparr_240219_x86_64.qpkg.md5 b/QPKGs/OWhisparr/build/OWhisparr_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..ef8f0b5d1 --- /dev/null +++ b/QPKGs/OWhisparr/build/OWhisparr_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +3fecec9a22988fe5df9ba81cc3a41d0e build/OWhisparr_240219_x86_64.qpkg diff --git a/QPKGs/OWhisparr/qpkg.cfg b/QPKGs/OWhisparr/qpkg.cfg index 3a0e609db..7018104a4 100644 --- a/QPKGs/OWhisparr/qpkg.cfg +++ b/QPKGs/OWhisparr/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OWhisparr" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="owhisparr.sh" diff --git a/QPKGs/OWhisparr/x86_64/owhisparr.sh b/QPKGs/OWhisparr/x86_64/owhisparr.sh index 2f7123870..6d8e49de7 100755 --- a/QPKGs/OWhisparr/x86_64/owhisparr.sh +++ b/QPKGs/OWhisparr/x86_64/owhisparr.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OWhisparr -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OliveTin/arm-x19/olivetin.sh b/QPKGs/OliveTin/arm-x19/olivetin.sh index 7b8c7ed1e..d6117fedb 100755 --- a/QPKGs/OliveTin/arm-x19/olivetin.sh +++ b/QPKGs/OliveTin/arm-x19/olivetin.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OliveTin -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OliveTin/arm-x31/olivetin.sh b/QPKGs/OliveTin/arm-x31/olivetin.sh index 30cf5af08..ddef800f6 100755 --- a/QPKGs/OliveTin/arm-x31/olivetin.sh +++ b/QPKGs/OliveTin/arm-x31/olivetin.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OliveTin -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OliveTin/arm-x41/olivetin.sh b/QPKGs/OliveTin/arm-x41/olivetin.sh index 30cf5af08..ddef800f6 100755 --- a/QPKGs/OliveTin/arm-x41/olivetin.sh +++ b/QPKGs/OliveTin/arm-x41/olivetin.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OliveTin -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OliveTin/arm_64/olivetin.sh b/QPKGs/OliveTin/arm_64/olivetin.sh index a34e3533f..c6c528ab6 100755 --- a/QPKGs/OliveTin/arm_64/olivetin.sh +++ b/QPKGs/OliveTin/arm_64/olivetin.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OliveTin -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OliveTin/build/OliveTin_240212_arm-x19.qpkg b/QPKGs/OliveTin/build/OliveTin_240212_arm-x19.qpkg new file mode 100644 index 000000000..ad2dd8761 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240212_arm-x19.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240212_arm-x19.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240212_arm-x19.qpkg.md5 new file mode 100644 index 000000000..c3a1dc04e --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240212_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +c68dd7d4981931ff73a0ded372549e21 build/OliveTin_240212_arm-x19.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240212_arm-x31.qpkg b/QPKGs/OliveTin/build/OliveTin_240212_arm-x31.qpkg new file mode 100644 index 000000000..7f7709b40 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240212_arm-x31.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240212_arm-x31.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240212_arm-x31.qpkg.md5 new file mode 100644 index 000000000..16567ca84 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240212_arm-x31.qpkg.md5 @@ -0,0 +1 @@ +74761a5164cae4038953ecc124bd5049 build/OliveTin_240212_arm-x31.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240212_arm-x41.qpkg b/QPKGs/OliveTin/build/OliveTin_240212_arm-x41.qpkg new file mode 100644 index 000000000..b8b1d5346 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240212_arm-x41.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240212_arm-x41.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240212_arm-x41.qpkg.md5 new file mode 100644 index 000000000..e563d351f --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240212_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +e3c5264e9e75b4c506d65776c1b90c03 build/OliveTin_240212_arm-x41.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240212_arm_64.qpkg b/QPKGs/OliveTin/build/OliveTin_240212_arm_64.qpkg new file mode 100644 index 000000000..ada48e077 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240212_arm_64.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240212_arm_64.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..bb14698a8 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +d34839cbce9926ef1fe1012f3cd10756 build/OliveTin_240212_arm_64.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240212_x86_64.qpkg b/QPKGs/OliveTin/build/OliveTin_240212_x86_64.qpkg new file mode 100644 index 000000000..64977f7d2 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240212_x86_64.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240212_x86_64.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..addfed932 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +7082db926ac2ced2eaf3f3e418409582 build/OliveTin_240212_x86_64.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240218_arm-x19.qpkg b/QPKGs/OliveTin/build/OliveTin_240218_arm-x19.qpkg new file mode 100644 index 000000000..205ed14c6 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240218_arm-x19.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240218_arm-x19.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240218_arm-x19.qpkg.md5 new file mode 100644 index 000000000..28a316fef --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240218_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +45c7a2c59821c7add057205c99a92fab build/OliveTin_240218_arm-x19.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240218_arm-x31.qpkg b/QPKGs/OliveTin/build/OliveTin_240218_arm-x31.qpkg new file mode 100644 index 000000000..973ca5068 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240218_arm-x31.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240218_arm-x31.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240218_arm-x31.qpkg.md5 new file mode 100644 index 000000000..d438c9f81 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240218_arm-x31.qpkg.md5 @@ -0,0 +1 @@ +222796596d5f0da8b1116906d77244e7 build/OliveTin_240218_arm-x31.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240218_arm-x41.qpkg b/QPKGs/OliveTin/build/OliveTin_240218_arm-x41.qpkg new file mode 100644 index 000000000..2b39bc78f Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240218_arm-x41.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240218_arm-x41.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240218_arm-x41.qpkg.md5 new file mode 100644 index 000000000..8d8209028 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240218_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +cbbfaaf9ffb1d28794771e109505dd33 build/OliveTin_240218_arm-x41.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240218_arm_64.qpkg b/QPKGs/OliveTin/build/OliveTin_240218_arm_64.qpkg new file mode 100644 index 000000000..cf2b28db3 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240218_arm_64.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240218_arm_64.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..52e02ca1c --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +a7771ef22456008f9b3c2c32870fdbcd build/OliveTin_240218_arm_64.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240218_x86_64.qpkg b/QPKGs/OliveTin/build/OliveTin_240218_x86_64.qpkg new file mode 100644 index 000000000..4b087f8bd Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240218_x86_64.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240218_x86_64.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..e52f975f9 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +25655782ddc6e7837892373a1cbbf0fc build/OliveTin_240218_x86_64.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240219_arm-x19.qpkg b/QPKGs/OliveTin/build/OliveTin_240219_arm-x19.qpkg new file mode 100644 index 000000000..ce5ea462e Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240219_arm-x19.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240219_arm-x19.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240219_arm-x19.qpkg.md5 new file mode 100644 index 000000000..142d949a4 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240219_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +ba45d934b2968479f193c4f0894b23bc build/OliveTin_240219_arm-x19.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240219_arm-x31.qpkg b/QPKGs/OliveTin/build/OliveTin_240219_arm-x31.qpkg new file mode 100644 index 000000000..9be6068f7 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240219_arm-x31.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240219_arm-x31.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240219_arm-x31.qpkg.md5 new file mode 100644 index 000000000..097388c1f --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240219_arm-x31.qpkg.md5 @@ -0,0 +1 @@ +b46d0548e48a8e65cde6735c32935a37 build/OliveTin_240219_arm-x31.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240219_arm-x41.qpkg b/QPKGs/OliveTin/build/OliveTin_240219_arm-x41.qpkg new file mode 100644 index 000000000..d808993bb Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240219_arm-x41.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240219_arm-x41.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240219_arm-x41.qpkg.md5 new file mode 100644 index 000000000..81fde5c62 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240219_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +d172867ea7f656a1a35922c0881b74f8 build/OliveTin_240219_arm-x41.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240219_arm_64.qpkg b/QPKGs/OliveTin/build/OliveTin_240219_arm_64.qpkg new file mode 100644 index 000000000..277c26a77 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240219_arm_64.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240219_arm_64.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..8b1f2047d --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +f33b7fe22f2324be2c6f57fc9daaf6df build/OliveTin_240219_arm_64.qpkg diff --git a/QPKGs/OliveTin/build/OliveTin_240219_x86_64.qpkg b/QPKGs/OliveTin/build/OliveTin_240219_x86_64.qpkg new file mode 100644 index 000000000..e2cf9f2d3 Binary files /dev/null and b/QPKGs/OliveTin/build/OliveTin_240219_x86_64.qpkg differ diff --git a/QPKGs/OliveTin/build/OliveTin_240219_x86_64.qpkg.md5 b/QPKGs/OliveTin/build/OliveTin_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..18ebdf506 --- /dev/null +++ b/QPKGs/OliveTin/build/OliveTin_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +5f10e36e88dc7994235ac3266aaeccd4 build/OliveTin_240219_x86_64.qpkg diff --git a/QPKGs/OliveTin/qpkg.cfg b/QPKGs/OliveTin/qpkg.cfg index 23d874986..d98b5e43c 100644 --- a/QPKGs/OliveTin/qpkg.cfg +++ b/QPKGs/OliveTin/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OliveTin" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="olivetin.sh" diff --git a/QPKGs/OliveTin/x86_64/olivetin.sh b/QPKGs/OliveTin/x86_64/olivetin.sh index acd700a6a..71f684546 100755 --- a/QPKGs/OliveTin/x86_64/olivetin.sh +++ b/QPKGs/OliveTin/x86_64/olivetin.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OliveTin -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=5 InitService() { diff --git a/QPKGs/OqBittorrent/build/OqBittorrent_240212.qpkg b/QPKGs/OqBittorrent/build/OqBittorrent_240212.qpkg new file mode 100644 index 000000000..6a0906851 Binary files /dev/null and b/QPKGs/OqBittorrent/build/OqBittorrent_240212.qpkg differ diff --git a/QPKGs/OqBittorrent/build/OqBittorrent_240212.qpkg.md5 b/QPKGs/OqBittorrent/build/OqBittorrent_240212.qpkg.md5 new file mode 100644 index 000000000..56abedcb1 --- /dev/null +++ b/QPKGs/OqBittorrent/build/OqBittorrent_240212.qpkg.md5 @@ -0,0 +1 @@ +003bd572f4c2ad449d502514a3368bd7 build/OqBittorrent_240212.qpkg diff --git a/QPKGs/OqBittorrent/build/OqBittorrent_240218.qpkg b/QPKGs/OqBittorrent/build/OqBittorrent_240218.qpkg new file mode 100644 index 000000000..5de5c93bc Binary files /dev/null and b/QPKGs/OqBittorrent/build/OqBittorrent_240218.qpkg differ diff --git a/QPKGs/OqBittorrent/build/OqBittorrent_240218.qpkg.md5 b/QPKGs/OqBittorrent/build/OqBittorrent_240218.qpkg.md5 new file mode 100644 index 000000000..dff9a4fab --- /dev/null +++ b/QPKGs/OqBittorrent/build/OqBittorrent_240218.qpkg.md5 @@ -0,0 +1 @@ +5f906c98efa11e7ecce6fda2ab29e90b build/OqBittorrent_240218.qpkg diff --git a/QPKGs/OqBittorrent/build/OqBittorrent_240219.qpkg b/QPKGs/OqBittorrent/build/OqBittorrent_240219.qpkg new file mode 100644 index 000000000..9d7519307 Binary files /dev/null and b/QPKGs/OqBittorrent/build/OqBittorrent_240219.qpkg differ diff --git a/QPKGs/OqBittorrent/build/OqBittorrent_240219.qpkg.md5 b/QPKGs/OqBittorrent/build/OqBittorrent_240219.qpkg.md5 new file mode 100644 index 000000000..fe877217a --- /dev/null +++ b/QPKGs/OqBittorrent/build/OqBittorrent_240219.qpkg.md5 @@ -0,0 +1 @@ +62fd4e1c82564354b30017870c68e0fe build/OqBittorrent_240219.qpkg diff --git a/QPKGs/OqBittorrent/qpkg.cfg b/QPKGs/OqBittorrent/qpkg.cfg index 1d6e9df40..a94564c70 100644 --- a/QPKGs/OqBittorrent/qpkg.cfg +++ b/QPKGs/OqBittorrent/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="OqBittorrent" -QPKG_VER="240211" +QPKG_VER="240219" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="oqbittorrent.sh" diff --git a/QPKGs/OqBittorrent/shared/oqbittorrent.sh b/QPKGs/OqBittorrent/shared/oqbittorrent.sh index 0bd68861f..e53ee9a2b 100755 --- a/QPKGs/OqBittorrent/shared/oqbittorrent.sh +++ b/QPKGs/OqBittorrent/shared/oqbittorrent.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=OqBittorrent -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240219' readonly SERVICE_SCRIPT_TYPE=3 InitService() { diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x19.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x19.qpkg new file mode 100644 index 000000000..67ef8524f Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x19.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x19.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x19.qpkg.md5 new file mode 100644 index 000000000..6338d2394 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +0f090c5951fa292ced878125d8cecc22 build/SABnzbd_240212_arm-x19.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x31.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x31.qpkg new file mode 100644 index 000000000..2c3d996f9 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x31.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x31.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x31.qpkg.md5 new file mode 100644 index 000000000..d168232c6 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x31.qpkg.md5 @@ -0,0 +1 @@ +fdc4912b082713d43f3afafc0969ecda build/SABnzbd_240212_arm-x31.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x41.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x41.qpkg new file mode 100644 index 000000000..6b4583d74 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x41.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x41.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x41.qpkg.md5 new file mode 100644 index 000000000..89fb895e7 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240212_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +c9498365cb92c1aa91234b893691bb35 build/SABnzbd_240212_arm-x41.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_arm_64.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240212_arm_64.qpkg new file mode 100644 index 000000000..280ce6b5b Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240212_arm_64.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_arm_64.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..86b987996 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +4be0a593b887b37054151900728a320c build/SABnzbd_240212_arm_64.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_x86.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240212_x86.qpkg new file mode 100644 index 000000000..b9d6f7f8f Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240212_x86.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_x86.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240212_x86.qpkg.md5 new file mode 100644 index 000000000..51caaf0fa --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240212_x86.qpkg.md5 @@ -0,0 +1 @@ +e429a697ff81df835bce43d2f49cea50 build/SABnzbd_240212_x86.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_x86_64.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240212_x86_64.qpkg new file mode 100644 index 000000000..b0a15644e Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240212_x86_64.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240212_x86_64.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..031f2e6c3 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +62100e68de24e6b15c64035c55266a5c build/SABnzbd_240212_x86_64.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x19.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x19.qpkg new file mode 100644 index 000000000..2cfe80e17 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x19.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x19.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x19.qpkg.md5 new file mode 100644 index 000000000..58d6b8f1c --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +19b294d60fbf5b3ae55076fa814af296 build/SABnzbd_240218_arm-x19.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x31.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x31.qpkg new file mode 100644 index 000000000..d76815c42 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x31.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x31.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x31.qpkg.md5 new file mode 100644 index 000000000..c776bc181 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x31.qpkg.md5 @@ -0,0 +1 @@ +e9ca835bed859e2e8521596518ea8b1e build/SABnzbd_240218_arm-x31.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x41.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x41.qpkg new file mode 100644 index 000000000..4b018933b Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x41.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x41.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x41.qpkg.md5 new file mode 100644 index 000000000..9050ec05e --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240218_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +3075c63c7de7b8f944dc5d97de2a7d9c build/SABnzbd_240218_arm-x41.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_arm_64.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240218_arm_64.qpkg new file mode 100644 index 000000000..df9de4351 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240218_arm_64.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_arm_64.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..36dad05e3 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +46e52c63e12dbcfc088517d839e4d5b0 build/SABnzbd_240218_arm_64.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_x86.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240218_x86.qpkg new file mode 100644 index 000000000..cb10f03c9 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240218_x86.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_x86.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240218_x86.qpkg.md5 new file mode 100644 index 000000000..da55f0c8d --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240218_x86.qpkg.md5 @@ -0,0 +1 @@ +83269f78cc504a0d16b8dcac859f45f0 build/SABnzbd_240218_x86.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_x86_64.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240218_x86_64.qpkg new file mode 100644 index 000000000..73816bbb4 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240218_x86_64.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240218_x86_64.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..54f997b02 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +40a90958daca1205cf1e703134c9dd68 build/SABnzbd_240218_x86_64.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x19.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x19.qpkg new file mode 100644 index 000000000..f2a442ab6 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x19.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x19.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x19.qpkg.md5 new file mode 100644 index 000000000..1b17c9125 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +fd441c93bf3719c7d6759806e9faa1f0 build/SABnzbd_240219_arm-x19.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x31.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x31.qpkg new file mode 100644 index 000000000..e03854024 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x31.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x31.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x31.qpkg.md5 new file mode 100644 index 000000000..47909db0c --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x31.qpkg.md5 @@ -0,0 +1 @@ +e3c5db6f22258fbae64b4dcfbd4a6944 build/SABnzbd_240219_arm-x31.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x41.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x41.qpkg new file mode 100644 index 000000000..79c9cce4b Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x41.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x41.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x41.qpkg.md5 new file mode 100644 index 000000000..f8b131b5d --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240219_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +7f091f0b67b4b7059000e781aadbbe89 build/SABnzbd_240219_arm-x41.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_arm_64.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240219_arm_64.qpkg new file mode 100644 index 000000000..6d519e315 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240219_arm_64.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_arm_64.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..2485a359f --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +0db203bbf4b0c092b650258000d0184f build/SABnzbd_240219_arm_64.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_x86.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240219_x86.qpkg new file mode 100644 index 000000000..166360492 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240219_x86.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_x86.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240219_x86.qpkg.md5 new file mode 100644 index 000000000..0e24f3004 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240219_x86.qpkg.md5 @@ -0,0 +1 @@ +ab7c55cbce2fc0af16727ffaa2b8cd2e build/SABnzbd_240219_x86.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_x86_64.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240219_x86_64.qpkg new file mode 100644 index 000000000..1709489f8 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240219_x86_64.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240219_x86_64.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..d51473765 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +cc32c74c3e3ecf290dfecac76e392cf3 build/SABnzbd_240219_x86_64.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x19.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x19.qpkg new file mode 100644 index 000000000..9c8aa9c28 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x19.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x19.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x19.qpkg.md5 new file mode 100644 index 000000000..dcf94798d --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +abbf59076d7b85d58f83cf9a0e2464d5 build/SABnzbd_240225_arm-x19.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x31.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x31.qpkg new file mode 100644 index 000000000..674299356 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x31.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x31.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x31.qpkg.md5 new file mode 100644 index 000000000..3ff7db397 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x31.qpkg.md5 @@ -0,0 +1 @@ +0d9cb7f178465fbab5ce967420f2c018 build/SABnzbd_240225_arm-x31.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x41.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x41.qpkg new file mode 100644 index 000000000..3ad639620 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x41.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x41.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x41.qpkg.md5 new file mode 100644 index 000000000..b66a9cb80 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240225_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +a361394f1c1217cc86a1d07434506f1e build/SABnzbd_240225_arm-x41.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_arm_64.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240225_arm_64.qpkg new file mode 100644 index 000000000..2ae3cb408 Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240225_arm_64.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_arm_64.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240225_arm_64.qpkg.md5 new file mode 100644 index 000000000..5f314b9d3 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240225_arm_64.qpkg.md5 @@ -0,0 +1 @@ +2d24b47e194fa38c2620ad437ef9acfd build/SABnzbd_240225_arm_64.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_x86.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240225_x86.qpkg new file mode 100644 index 000000000..e98fb4e4d Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240225_x86.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_x86.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240225_x86.qpkg.md5 new file mode 100644 index 000000000..d749e4d28 --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240225_x86.qpkg.md5 @@ -0,0 +1 @@ +7fb29ea8bb3409084fbd074b873faa54 build/SABnzbd_240225_x86.qpkg diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_x86_64.qpkg b/QPKGs/SABnzbd/build/SABnzbd_240225_x86_64.qpkg new file mode 100644 index 000000000..0ea20461b Binary files /dev/null and b/QPKGs/SABnzbd/build/SABnzbd_240225_x86_64.qpkg differ diff --git a/QPKGs/SABnzbd/build/SABnzbd_240225_x86_64.qpkg.md5 b/QPKGs/SABnzbd/build/SABnzbd_240225_x86_64.qpkg.md5 new file mode 100644 index 000000000..9b97ed84c --- /dev/null +++ b/QPKGs/SABnzbd/build/SABnzbd_240225_x86_64.qpkg.md5 @@ -0,0 +1 @@ +feac48d0a9d54dc386a24be1ac0c3697 build/SABnzbd_240225_x86_64.qpkg diff --git a/QPKGs/SABnzbd/qpkg.cfg b/QPKGs/SABnzbd/qpkg.cfg index 35c3b58bb..6ccf8a121 100644 --- a/QPKGs/SABnzbd/qpkg.cfg +++ b/QPKGs/SABnzbd/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="SABnzbd" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="sabnzbd.sh" diff --git a/QPKGs/SABnzbd/shared/sabnzbd.sh b/QPKGs/SABnzbd/shared/sabnzbd.sh index 94b9b2f3a..d76317325 100755 --- a/QPKGs/SABnzbd/shared/sabnzbd.sh +++ b/QPKGs/SABnzbd/shared/sabnzbd.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=SABnzbd -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=1 InitService() { diff --git a/QPKGs/WebSSH/build/WebSSH_240212_arm_64.qpkg b/QPKGs/WebSSH/build/WebSSH_240212_arm_64.qpkg new file mode 100644 index 000000000..d30feb9f6 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240212_arm_64.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240212_arm_64.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..04ae7a38c --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +0fe32cf47d0b228f010e27f11d6c945b build/WebSSH_240212_arm_64.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240212_x86.qpkg b/QPKGs/WebSSH/build/WebSSH_240212_x86.qpkg new file mode 100644 index 000000000..1f4aca391 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240212_x86.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240212_x86.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240212_x86.qpkg.md5 new file mode 100644 index 000000000..c5eecb78d --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240212_x86.qpkg.md5 @@ -0,0 +1 @@ +06937a516984b7d6db590f9db1a160b2 build/WebSSH_240212_x86.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240212_x86_64.qpkg b/QPKGs/WebSSH/build/WebSSH_240212_x86_64.qpkg new file mode 100644 index 000000000..6cb7be044 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240212_x86_64.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240212_x86_64.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..02dca92ab --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +490cee2c62385a77038da2e41f4ca665 build/WebSSH_240212_x86_64.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240218_arm_64.qpkg b/QPKGs/WebSSH/build/WebSSH_240218_arm_64.qpkg new file mode 100644 index 000000000..bfa286f0d Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240218_arm_64.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240218_arm_64.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..fa899188b --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +c567a9c44c2ff95cc5a66219fe61ff2d build/WebSSH_240218_arm_64.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240218_x86.qpkg b/QPKGs/WebSSH/build/WebSSH_240218_x86.qpkg new file mode 100644 index 000000000..2b00d0c0d Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240218_x86.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240218_x86.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240218_x86.qpkg.md5 new file mode 100644 index 000000000..420e274f7 --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240218_x86.qpkg.md5 @@ -0,0 +1 @@ +af8b8f507a11105cbeeb4f22c2cf3d51 build/WebSSH_240218_x86.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240218_x86_64.qpkg b/QPKGs/WebSSH/build/WebSSH_240218_x86_64.qpkg new file mode 100644 index 000000000..87b3b41e2 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240218_x86_64.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240218_x86_64.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..da15bc4de --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +6c17f9d4b64eba4308344ccab6ea3b54 build/WebSSH_240218_x86_64.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240219_arm_64.qpkg b/QPKGs/WebSSH/build/WebSSH_240219_arm_64.qpkg new file mode 100644 index 000000000..a7e0c3248 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240219_arm_64.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240219_arm_64.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..dd9d3ccfb --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +9485c703f206ca748be0eb2bb155ad84 build/WebSSH_240219_arm_64.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240219_x86.qpkg b/QPKGs/WebSSH/build/WebSSH_240219_x86.qpkg new file mode 100644 index 000000000..03749723c Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240219_x86.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240219_x86.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240219_x86.qpkg.md5 new file mode 100644 index 000000000..35928c52f --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240219_x86.qpkg.md5 @@ -0,0 +1 @@ +38e9d2bb7fb21e86a92549f3369a223b build/WebSSH_240219_x86.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240219_x86_64.qpkg b/QPKGs/WebSSH/build/WebSSH_240219_x86_64.qpkg new file mode 100644 index 000000000..39857ffc9 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240219_x86_64.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240219_x86_64.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..71d14ed99 --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +43cb147be57cef816f00c93c3679cbd0 build/WebSSH_240219_x86_64.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240225_arm_64.qpkg b/QPKGs/WebSSH/build/WebSSH_240225_arm_64.qpkg new file mode 100644 index 000000000..edb02b7a7 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240225_arm_64.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240225_arm_64.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240225_arm_64.qpkg.md5 new file mode 100644 index 000000000..d9b2d6bd5 --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240225_arm_64.qpkg.md5 @@ -0,0 +1 @@ +bb855ee39785c1ae213a6f7ada9270b2 build/WebSSH_240225_arm_64.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240225_x86.qpkg b/QPKGs/WebSSH/build/WebSSH_240225_x86.qpkg new file mode 100644 index 000000000..6217496a2 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240225_x86.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240225_x86.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240225_x86.qpkg.md5 new file mode 100644 index 000000000..9b3a6776b --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240225_x86.qpkg.md5 @@ -0,0 +1 @@ +693aefcad2eab3a205af67f6f431878b build/WebSSH_240225_x86.qpkg diff --git a/QPKGs/WebSSH/build/WebSSH_240225_x86_64.qpkg b/QPKGs/WebSSH/build/WebSSH_240225_x86_64.qpkg new file mode 100644 index 000000000..fade4f803 Binary files /dev/null and b/QPKGs/WebSSH/build/WebSSH_240225_x86_64.qpkg differ diff --git a/QPKGs/WebSSH/build/WebSSH_240225_x86_64.qpkg.md5 b/QPKGs/WebSSH/build/WebSSH_240225_x86_64.qpkg.md5 new file mode 100644 index 000000000..1c45701cc --- /dev/null +++ b/QPKGs/WebSSH/build/WebSSH_240225_x86_64.qpkg.md5 @@ -0,0 +1 @@ +33453fe883b116e5e3358f0229a518c2 build/WebSSH_240225_x86_64.qpkg diff --git a/QPKGs/WebSSH/qpkg.cfg b/QPKGs/WebSSH/qpkg.cfg index 341149f00..f2ff6721d 100644 --- a/QPKGs/WebSSH/qpkg.cfg +++ b/QPKGs/WebSSH/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="WebSSH" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="webssh.sh" diff --git a/QPKGs/WebSSH/shared/webssh.sh b/QPKGs/WebSSH/shared/webssh.sh index f2651db99..f02521f06 100755 --- a/QPKGs/WebSSH/shared/webssh.sh +++ b/QPKGs/WebSSH/shared/webssh.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=WebSSH -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=6 InitService() { diff --git a/QPKGs/pyLoad/build/pyLoad_240212_arm-x19.qpkg b/QPKGs/pyLoad/build/pyLoad_240212_arm-x19.qpkg new file mode 100644 index 000000000..15f6b24a3 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240212_arm-x19.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240212_arm-x19.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240212_arm-x19.qpkg.md5 new file mode 100644 index 000000000..ecd7b77b5 --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240212_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +a868fb6884b2bdb282c9f51c07b40469 build/pyLoad_240212_arm-x19.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240212_arm-x41.qpkg b/QPKGs/pyLoad/build/pyLoad_240212_arm-x41.qpkg new file mode 100644 index 000000000..464cd146f Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240212_arm-x41.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240212_arm-x41.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240212_arm-x41.qpkg.md5 new file mode 100644 index 000000000..e387a3e8b --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240212_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +7af1c94144530361e2dab84ab3f68fdc build/pyLoad_240212_arm-x41.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240212_arm_64.qpkg b/QPKGs/pyLoad/build/pyLoad_240212_arm_64.qpkg new file mode 100644 index 000000000..00ecd1dee Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240212_arm_64.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240212_arm_64.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240212_arm_64.qpkg.md5 new file mode 100644 index 000000000..2d75af064 --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240212_arm_64.qpkg.md5 @@ -0,0 +1 @@ +8cb6da040ad85a0a55beca72cc53ecd9 build/pyLoad_240212_arm_64.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240212_x86.qpkg b/QPKGs/pyLoad/build/pyLoad_240212_x86.qpkg new file mode 100644 index 000000000..8488332f6 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240212_x86.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240212_x86.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240212_x86.qpkg.md5 new file mode 100644 index 000000000..2e1b368cb --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240212_x86.qpkg.md5 @@ -0,0 +1 @@ +f7a1706d0d589f4dcc9677eaaf2a9d89 build/pyLoad_240212_x86.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240212_x86_64.qpkg b/QPKGs/pyLoad/build/pyLoad_240212_x86_64.qpkg new file mode 100644 index 000000000..7cdac7590 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240212_x86_64.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240212_x86_64.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240212_x86_64.qpkg.md5 new file mode 100644 index 000000000..cd7480474 --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240212_x86_64.qpkg.md5 @@ -0,0 +1 @@ +aee8ac0825dbe5cd134543f0decf3c66 build/pyLoad_240212_x86_64.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240218_arm-x19.qpkg b/QPKGs/pyLoad/build/pyLoad_240218_arm-x19.qpkg new file mode 100644 index 000000000..289b78e1a Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240218_arm-x19.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240218_arm-x19.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240218_arm-x19.qpkg.md5 new file mode 100644 index 000000000..86858720e --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240218_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +cc439fa7e068d0be09ab2455977bc0d0 build/pyLoad_240218_arm-x19.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240218_arm-x41.qpkg b/QPKGs/pyLoad/build/pyLoad_240218_arm-x41.qpkg new file mode 100644 index 000000000..9ba1dcf24 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240218_arm-x41.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240218_arm-x41.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240218_arm-x41.qpkg.md5 new file mode 100644 index 000000000..091c24467 --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240218_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +ab3cc96f04b58aa3c9c6cb6e0723089a build/pyLoad_240218_arm-x41.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240218_arm_64.qpkg b/QPKGs/pyLoad/build/pyLoad_240218_arm_64.qpkg new file mode 100644 index 000000000..e4342c9e2 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240218_arm_64.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240218_arm_64.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240218_arm_64.qpkg.md5 new file mode 100644 index 000000000..73da43c17 --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240218_arm_64.qpkg.md5 @@ -0,0 +1 @@ +351a0e9a8fae199efff561eb64b527c1 build/pyLoad_240218_arm_64.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240218_x86.qpkg b/QPKGs/pyLoad/build/pyLoad_240218_x86.qpkg new file mode 100644 index 000000000..f3ccd1fae Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240218_x86.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240218_x86.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240218_x86.qpkg.md5 new file mode 100644 index 000000000..7de63ba0b --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240218_x86.qpkg.md5 @@ -0,0 +1 @@ +ab4edf95c08bf87df75e668a5753f47f build/pyLoad_240218_x86.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240218_x86_64.qpkg b/QPKGs/pyLoad/build/pyLoad_240218_x86_64.qpkg new file mode 100644 index 000000000..f5942979d Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240218_x86_64.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240218_x86_64.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240218_x86_64.qpkg.md5 new file mode 100644 index 000000000..6485c1064 --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240218_x86_64.qpkg.md5 @@ -0,0 +1 @@ +51cf8be9bcab68166459fc5ca7e129f4 build/pyLoad_240218_x86_64.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240219_arm-x19.qpkg b/QPKGs/pyLoad/build/pyLoad_240219_arm-x19.qpkg new file mode 100644 index 000000000..40156a885 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240219_arm-x19.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240219_arm-x19.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240219_arm-x19.qpkg.md5 new file mode 100644 index 000000000..824444fd3 --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240219_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +bcb7d3e5609ada84e560a08a8c830f58 build/pyLoad_240219_arm-x19.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240219_arm-x41.qpkg b/QPKGs/pyLoad/build/pyLoad_240219_arm-x41.qpkg new file mode 100644 index 000000000..9d0f4df03 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240219_arm-x41.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240219_arm-x41.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240219_arm-x41.qpkg.md5 new file mode 100644 index 000000000..306984deb --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240219_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +6253b9cf01226ca0984621110278d0ea build/pyLoad_240219_arm-x41.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240219_arm_64.qpkg b/QPKGs/pyLoad/build/pyLoad_240219_arm_64.qpkg new file mode 100644 index 000000000..bbcd34d19 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240219_arm_64.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240219_arm_64.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240219_arm_64.qpkg.md5 new file mode 100644 index 000000000..d604f741f --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240219_arm_64.qpkg.md5 @@ -0,0 +1 @@ +18da9a23d6b4cfaed20c7fb3f072b036 build/pyLoad_240219_arm_64.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240219_x86.qpkg b/QPKGs/pyLoad/build/pyLoad_240219_x86.qpkg new file mode 100644 index 000000000..9d5a2deec Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240219_x86.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240219_x86.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240219_x86.qpkg.md5 new file mode 100644 index 000000000..ff8f6faea --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240219_x86.qpkg.md5 @@ -0,0 +1 @@ +72d733d47a610231a401df1ea1e83ca2 build/pyLoad_240219_x86.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240219_x86_64.qpkg b/QPKGs/pyLoad/build/pyLoad_240219_x86_64.qpkg new file mode 100644 index 000000000..364eac05d Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240219_x86_64.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240219_x86_64.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240219_x86_64.qpkg.md5 new file mode 100644 index 000000000..71c24e5a7 --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240219_x86_64.qpkg.md5 @@ -0,0 +1 @@ +82a48a16920a816d20d7fcf7b556f057 build/pyLoad_240219_x86_64.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240225_arm-x19.qpkg b/QPKGs/pyLoad/build/pyLoad_240225_arm-x19.qpkg new file mode 100644 index 000000000..e78d25d22 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240225_arm-x19.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240225_arm-x19.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240225_arm-x19.qpkg.md5 new file mode 100644 index 000000000..b4f1f221a --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240225_arm-x19.qpkg.md5 @@ -0,0 +1 @@ +404879b7103b38cfd39519f0db5ed595 build/pyLoad_240225_arm-x19.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240225_arm-x41.qpkg b/QPKGs/pyLoad/build/pyLoad_240225_arm-x41.qpkg new file mode 100644 index 000000000..9c1fa8687 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240225_arm-x41.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240225_arm-x41.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240225_arm-x41.qpkg.md5 new file mode 100644 index 000000000..5b9dcdefa --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240225_arm-x41.qpkg.md5 @@ -0,0 +1 @@ +6189972b250a284d70f65aeb5fe03c20 build/pyLoad_240225_arm-x41.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240225_arm_64.qpkg b/QPKGs/pyLoad/build/pyLoad_240225_arm_64.qpkg new file mode 100644 index 000000000..8289f5391 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240225_arm_64.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240225_arm_64.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240225_arm_64.qpkg.md5 new file mode 100644 index 000000000..ad98f45be --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240225_arm_64.qpkg.md5 @@ -0,0 +1 @@ +9eb6145f41140db6d4e49a6752da4a8b build/pyLoad_240225_arm_64.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240225_x86.qpkg b/QPKGs/pyLoad/build/pyLoad_240225_x86.qpkg new file mode 100644 index 000000000..505cfe5eb Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240225_x86.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240225_x86.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240225_x86.qpkg.md5 new file mode 100644 index 000000000..586a01d2d --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240225_x86.qpkg.md5 @@ -0,0 +1 @@ +55b01deee508ed76e620e91a575dd663 build/pyLoad_240225_x86.qpkg diff --git a/QPKGs/pyLoad/build/pyLoad_240225_x86_64.qpkg b/QPKGs/pyLoad/build/pyLoad_240225_x86_64.qpkg new file mode 100644 index 000000000..b86e32a38 Binary files /dev/null and b/QPKGs/pyLoad/build/pyLoad_240225_x86_64.qpkg differ diff --git a/QPKGs/pyLoad/build/pyLoad_240225_x86_64.qpkg.md5 b/QPKGs/pyLoad/build/pyLoad_240225_x86_64.qpkg.md5 new file mode 100644 index 000000000..846af369e --- /dev/null +++ b/QPKGs/pyLoad/build/pyLoad_240225_x86_64.qpkg.md5 @@ -0,0 +1 @@ +d9f6e2cd4d8e265423d16b4522571597 build/pyLoad_240225_x86_64.qpkg diff --git a/QPKGs/pyLoad/qpkg.cfg b/QPKGs/pyLoad/qpkg.cfg index 824edf3a5..aee0817a3 100644 --- a/QPKGs/pyLoad/qpkg.cfg +++ b/QPKGs/pyLoad/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="pyLoad" -QPKG_VER="240211" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="100" QPKG_SERVICE_PROGRAM="pyload.sh" diff --git a/QPKGs/pyLoad/shared/pyload.sh b/QPKGs/pyLoad/shared/pyload.sh index 8bd021ae0..737830f56 100755 --- a/QPKGs/pyLoad/shared/pyload.sh +++ b/QPKGs/pyLoad/shared/pyload.sh @@ -21,7 +21,7 @@ #* 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 USER_ARGS_RAW=$* readonly QPKG_NAME=pyLoad -readonly SERVICE_SCRIPT_VERSION='240211' +readonly SERVICE_SCRIPT_VERSION='240225' readonly SERVICE_SCRIPT_TYPE=6 InitService() { diff --git a/QPKGs/sherpa/build/sherpa_240212.qpkg b/QPKGs/sherpa/build/sherpa_240212.qpkg index e2844e68e..3b660f0db 100644 Binary files a/QPKGs/sherpa/build/sherpa_240212.qpkg and b/QPKGs/sherpa/build/sherpa_240212.qpkg differ diff --git a/QPKGs/sherpa/build/sherpa_240212.qpkg.md5 b/QPKGs/sherpa/build/sherpa_240212.qpkg.md5 index 9f3b474f0..426aaf96f 100644 --- a/QPKGs/sherpa/build/sherpa_240212.qpkg.md5 +++ b/QPKGs/sherpa/build/sherpa_240212.qpkg.md5 @@ -1 +1 @@ -55fea94f6801fa74d44669849365b487 build/sherpa_240212.qpkg +2cced6733c29422bd878406d62ee876f build/sherpa_240212.qpkg diff --git a/QPKGs/sherpa/build/sherpa_240217.qpkg b/QPKGs/sherpa/build/sherpa_240217.qpkg new file mode 100644 index 000000000..3516ba217 Binary files /dev/null and b/QPKGs/sherpa/build/sherpa_240217.qpkg differ diff --git a/QPKGs/sherpa/build/sherpa_240217.qpkg.md5 b/QPKGs/sherpa/build/sherpa_240217.qpkg.md5 new file mode 100644 index 000000000..e8d0ef217 --- /dev/null +++ b/QPKGs/sherpa/build/sherpa_240217.qpkg.md5 @@ -0,0 +1 @@ +1f0bede6ff3f833454f1cb39c7b4756a build/sherpa_240217.qpkg diff --git a/QPKGs/sherpa/build/sherpa_240218.qpkg b/QPKGs/sherpa/build/sherpa_240218.qpkg new file mode 100644 index 000000000..89be0952e Binary files /dev/null and b/QPKGs/sherpa/build/sherpa_240218.qpkg differ diff --git a/QPKGs/sherpa/build/sherpa_240218.qpkg.md5 b/QPKGs/sherpa/build/sherpa_240218.qpkg.md5 new file mode 100644 index 000000000..7cd1fd7ef --- /dev/null +++ b/QPKGs/sherpa/build/sherpa_240218.qpkg.md5 @@ -0,0 +1 @@ +8db1fbe7672ee57a50fe7f8e62479d58 build/sherpa_240218.qpkg diff --git a/QPKGs/sherpa/build/sherpa_240221.qpkg b/QPKGs/sherpa/build/sherpa_240221.qpkg new file mode 100644 index 000000000..88a96c2aa Binary files /dev/null and b/QPKGs/sherpa/build/sherpa_240221.qpkg differ diff --git a/QPKGs/sherpa/build/sherpa_240221.qpkg.md5 b/QPKGs/sherpa/build/sherpa_240221.qpkg.md5 new file mode 100644 index 000000000..f2928c83e --- /dev/null +++ b/QPKGs/sherpa/build/sherpa_240221.qpkg.md5 @@ -0,0 +1 @@ +a899638592ff87672783f1182ca6e93c build/sherpa_240221.qpkg diff --git a/QPKGs/sherpa/build/sherpa_240224.qpkg b/QPKGs/sherpa/build/sherpa_240224.qpkg new file mode 100644 index 000000000..a1a887c4f Binary files /dev/null and b/QPKGs/sherpa/build/sherpa_240224.qpkg differ diff --git a/QPKGs/sherpa/build/sherpa_240224.qpkg.md5 b/QPKGs/sherpa/build/sherpa_240224.qpkg.md5 new file mode 100644 index 000000000..47e4baccf --- /dev/null +++ b/QPKGs/sherpa/build/sherpa_240224.qpkg.md5 @@ -0,0 +1 @@ +f28502d935eca62bbb5fbde9a86e2548 build/sherpa_240224.qpkg diff --git a/QPKGs/sherpa/build/sherpa_240225.qpkg b/QPKGs/sherpa/build/sherpa_240225.qpkg new file mode 100644 index 000000000..4e05f86d1 Binary files /dev/null and b/QPKGs/sherpa/build/sherpa_240225.qpkg differ diff --git a/QPKGs/sherpa/build/sherpa_240225.qpkg.md5 b/QPKGs/sherpa/build/sherpa_240225.qpkg.md5 new file mode 100644 index 000000000..c16ad8787 --- /dev/null +++ b/QPKGs/sherpa/build/sherpa_240225.qpkg.md5 @@ -0,0 +1 @@ +3c65e3227748894039dd285ceb6a532b build/sherpa_240225.qpkg diff --git a/QPKGs/sherpa/qpkg.cfg b/QPKGs/sherpa/qpkg.cfg index 3337ffe1a..8c6e86853 100644 --- a/QPKGs/sherpa/qpkg.cfg +++ b/QPKGs/sherpa/qpkg.cfg @@ -1,5 +1,5 @@ QPKG_NAME="sherpa" -QPKG_VER="240212" +QPKG_VER="240225" QPKG_AUTHOR="OneCD" QPKG_RC_NUM="500" QPKG_SERVICE_PROGRAM="sherpa-service.sh" diff --git a/QPKGs/sherpa/shared/sherpa-loader.sh b/QPKGs/sherpa/shared/sherpa-loader.sh index 9babffbcc..1eabb80b2 100755 --- a/QPKGs/sherpa/shared/sherpa-loader.sh +++ b/QPKGs/sherpa/shared/sherpa-loader.sh @@ -24,7 +24,7 @@ readonly USER_ARGS_RAW=$* Init() { -export LOADER_SCRIPT_VER='240212' +export LOADER_SCRIPT_VER='240225' export LOADER_SCRIPT_PPID=$PPID readonly QPKG_NAME=sherpa readonly CHARS_REGULAR_PROMPT='$ ' diff --git a/docs/QNAP-forum-announcement.bbcode b/docs/QNAP-forum-announcement.bbcode index b45c91ea0..56c021afa 100644 --- a/docs/QNAP-forum-announcement.bbcode +++ b/docs/QNAP-forum-announcement.bbcode @@ -15,7 +15,7 @@ That said: the majority of development is now complete, and I'm currently workin [b][u][size=120]Installation[/size][/u][/b] -[list=1][*][url=https://github.com/OneCDOnly/sherpa/releases/download/v240212/sherpa_240212.qpkg]Click here to download the [b]sherpa[/b] QPKG[/url]. +[list=1][*][url=https://github.com/OneCDOnly/sherpa/releases/download/v240225/sherpa_240225.qpkg]Click here to download the [b]sherpa[/b] QPKG[/url]. [*]Install the QPKG manually through your QTS App Center UI. This QPKG is not digitally signed, so you'll need to allow unsigned packages to be installed in your App Center before installing it. It can "sign" itself (and all supported QPKGs) after installation. [/list] diff --git a/docs/README.md b/docs/README.md index 13aebb32e..f8d8adb98 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,7 +18,7 @@ That said: the majority of development is now complete, and I'm currently workin ## Installation -1) [Click here to download the **sherpa** QPKG](https://github.com/OneCDOnly/sherpa/releases/download/v240212/sherpa_240212.qpkg). +1) [Click here to download the **sherpa** QPKG](https://github.com/OneCDOnly/sherpa/releases/download/v240225/sherpa_240225.qpkg). 2) Install the QPKG manually through your QTS App Center UI. This QPKG is not digitally signed, so you'll need to allow unsigned packages to be installed in your App Center before installing it. It can "sign" itself (and all supported QPKGs) after installation. diff --git a/objects.tar.gz b/objects.tar.gz index f3f1a8475..3435c5849 100644 Binary files a/objects.tar.gz and b/objects.tar.gz differ diff --git a/packages.tar.gz b/packages.tar.gz index 2b4444b4b..9db9b44ef 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 d5b27e5fa..08e927eaa 100644 Binary files a/sherpa-manager.tar.gz and b/sherpa-manager.tar.gz differ diff --git a/support/build-objects.sh b/support/build-objects.sh index fd6546242..a6a348092 100755 --- a/support/build-objects.sh +++ b/support/build-objects.sh @@ -12,7 +12,7 @@ PACKAGE_TIERS=(independent auxiliary dependent) # sorted QPKG_IS_STATES=(active backedup downloaded enabled installed missing signed slow unknown) -QPKG_ISNT_STATES=(active backedup downloaded enabled installed signed) +QPKG_ISNT_STATES=(active backedup downloaded enabled installed missing signed) QPKG_STATES_TRANSIENT=(starting stopping restarting) QPKG_SERVICE_RESULTS=(ok failed) @@ -26,10 +26,10 @@ QPKG_ACTIONS=(status list rebuild reassign download backup deactivate disable un # these actions, states and scopes may be specified by the user ----------------------------------------------------- # sorted -USER_QPKG_SC_GROUPS=(all canbackup canclean canrestarttoupdate dependent hasdependents installable independent upgradable) +USER_QPKG_SC_GROUPS=(all canbackup canclean canrestarttoupdate dependent hasdependents independent installable upgradable) USER_QPKG_SCNT_GROUPS=(canclean installable upgradable) USER_QPKG_IS_STATES=(active backedup enabled installed missing) -USER_QPKG_ISNT_STATES=(active backedup enabled installed) +USER_QPKG_ISNT_STATES=(active backedup enabled installed missing) USER_QPKG_ACTIONS=(activate backup clean deactivate disable disableau enable enableau install list reactivate reassign rebuild reinstall restore sign status uninstall upgrade) AddFlagObj() diff --git a/support/build-qpkgs.sh b/support/build-qpkgs.sh index 9d240b589..e3b9f1f4d 100755 --- a/support/build-qpkgs.sh +++ b/support/build-qpkgs.sh @@ -13,8 +13,8 @@ rebuild_functions=false rebuilt_functions=false if [[ -e $datetime_change_reference_pathfile ]]; then - if [[ -n $(find -L "$source_pathfile" -cnewer "$datetime_change_reference_pathfile") ]]; then - echo "service library source: updated" + if [[ -n $(find -L "$source_pathfile" -newer "$datetime_change_reference_pathfile") ]]; then + echo "service library source: modified" rebuild_functions=true else echo "service library: not newer than reference file" diff --git a/support/cleanup-code.sh b/support/cleanup-code.sh new file mode 100755 index 000000000..0b9e4c906 --- /dev/null +++ b/support/cleanup-code.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +. vars.source || exit + +declare -a filenames +declare -i index=0 + +filenames+=("$management_source_file") +filenames+=("$service_library_source_file") + +for index in "${!filenames[@]}"; do + echo -n "cleaning code '${filenames[index]}' ... " + + 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]}" + + ShowPassed +done + +exit 0 diff --git a/support/commit.sh b/support/commit.sh index d7187fede..1252ba835 100755 --- a/support/commit.sh +++ b/support/commit.sh @@ -5,6 +5,7 @@ this_path=$PWD . $source_path/vars.source || exit cd "$source_path" || exit +./cleanup-code.sh ./check-syntax.sh || exit [[ -e $objects_file ]] && rm -f "$objects_file" diff --git a/support/highest_package_versions_found.tbl b/support/highest_package_versions_found.tbl index b010cfe54..6d3753ac3 100644 --- a/support/highest_package_versions_found.tbl +++ b/support/highest_package_versions_found.tbl @@ -1,5 +1,5 @@ # checksum_filename qpkg_filename package_name version arch hash -ClamAV_240211.qpkg.md5 ClamAV_240211.qpkg ClamAV 240211 all 879d38770b6ee05b5f1b8ff82969e6f6 +ClamAV_240219.qpkg.md5 ClamAV_240219.qpkg ClamAV 240219 all 43757abfc7a28053cb46bcf3e69efb9f Deluge-server_240205.qpkg.md5 Deluge-server_240205.qpkg Deluge-server 240205 all 9d6370b7cc37cb074ff1509c9688f618 Deluge-web_240205.qpkg.md5 Deluge-web_240205.qpkg Deluge-web 240205 all 0145f7e17997ffa1e92a5934c8c67a3a duf_220809_arm_64.qpkg.md5 duf_220809_arm_64.qpkg duf 220809 a64 7684a8940ba63704b95cbc713cd55b35 @@ -8,77 +8,77 @@ duf_220809_arm-x41.qpkg.md5 duf_220809_arm-x41.qpkg duf duf_220809_x86_64.qpkg.md5 duf_220809_x86_64.qpkg duf 220809 i64 dac17d3e9f29f058f9e024e7f5ff4a4b duf_220809_x86.qpkg.md5 duf_220809_x86.qpkg duf 220809 i86 e351230ffde4a6040d423fe73d7ee5fc Entware_1.03a_std.qpkg.md5 Entware_1.03a_std.qpkg Entware 1.03a all deb88a170716d39309d124ad77875b4d -Glances_240211.qpkg.md5 Glances_240211.qpkg Glances 240211 all a562f83e9a7d77e3ccf18987d29008bc +Glances_240225.qpkg.md5 Glances_240225.qpkg Glances 240225 all 68f94fede067ce98419b882b49bf2d6d gpt-engineer_240202.qpkg.md5 gpt-engineer_240202.qpkg gpt-engineer 240202 all f04fde0d2eab15a4ff645f8d99ca9b2f -Headphones_240211.qpkg.md5 Headphones_240211.qpkg Headphones 240211 all 006ca5ec304b76c5046171ba471e0a98 +Headphones_240225.qpkg.md5 Headphones_240225.qpkg Headphones 240225 all 49bb54425eee08b0e7dc451f0c8b4120 HideThatBanner_240205.qpkg.md5 HideThatBanner_240205.qpkg HideThatBanner 240205 all a2d6d70756ab37a5b1af42b21f3c2b45 IncreaseTimeouts_240126.qpkg.md5 IncreaseTimeouts_240126.qpkg IncreaseTimeouts 240126 all 1e98f7add6ad9efa37e0593eeedbb2da inxi_240108.qpkg.md5 inxi_240108.qpkg inxi 240108 all adb5eef01a027c9478ae8ffc0e199c1b -Kapowarr_240211_arm_64.qpkg.md5 Kapowarr_240211_arm_64.qpkg Kapowarr 240211 a64 8998e41779e72b77d3deffd5637ea0c4 -Kapowarr_240211_x86_64.qpkg.md5 Kapowarr_240211_x86_64.qpkg Kapowarr 240211 i64 d416204a7a65030ecb455b5bdb4531d7 -Kapowarr_240211_x86.qpkg.md5 Kapowarr_240211_x86.qpkg Kapowarr 240211 i86 e3918eff41e3ccb1593a5ab920b29242 -LazyLibrarian_240211_arm_64.qpkg.md5 LazyLibrarian_240211_arm_64.qpkg LazyLibrarian 240211 a64 2741fe866777a991628c813c30e4defe -LazyLibrarian_240211_x86_64.qpkg.md5 LazyLibrarian_240211_x86_64.qpkg LazyLibrarian 240211 i64 5cc8bab78ea140b9f5a57eb1fcea8c65 -LazyLibrarian_240211_x86.qpkg.md5 LazyLibrarian_240211_x86.qpkg LazyLibrarian 240211 i86 76a489c09684971670f72b600f618fb1 -Mylar3_240211_arm_64.qpkg.md5 Mylar3_240211_arm_64.qpkg Mylar3 240211 a64 8f33982471714e1e698209e205f87f24 -Mylar3_240211_x86_64.qpkg.md5 Mylar3_240211_x86_64.qpkg Mylar3 240211 i64 39ff1e9cf2b58ca4093f84ce6c12f28b -Mylar3_240211_x86.qpkg.md5 Mylar3_240211_x86.qpkg Mylar3 240211 i86 7b61b6e4efea9b8789e4e58ab2f812cd -NZBGet_240211.qpkg.md5 NZBGet_240211.qpkg NZBGet 240211 all 086f142cd1fab263b37d50653438ac11 -NZBHydra2_240211_arm_64.qpkg.md5 NZBHydra2_240211_arm_64.qpkg NZBHydra2 240211 a64 29e57b6596e493bd6a79b34fe20eb631 -NZBHydra2_240211_x86_64.qpkg.md5 NZBHydra2_240211_x86_64.qpkg NZBHydra2 240211 i64 b5a4663fcf8182de87bc58c64ccbc69a +Kapowarr_240225_arm_64.qpkg.md5 Kapowarr_240225_arm_64.qpkg Kapowarr 240225 a64 fc066d30be28b32c654bdcb2f5294b6e +Kapowarr_240225_x86_64.qpkg.md5 Kapowarr_240225_x86_64.qpkg Kapowarr 240225 i64 c1c53982e3aae4b4c7025264a8ccc4a4 +Kapowarr_240225_x86.qpkg.md5 Kapowarr_240225_x86.qpkg Kapowarr 240225 i86 c8c645c1f1ef580b9b0d2d21333e2676 +LazyLibrarian_240225_arm_64.qpkg.md5 LazyLibrarian_240225_arm_64.qpkg LazyLibrarian 240225 a64 33c2eb876acbceee51cb8eec6c2ae875 +LazyLibrarian_240225_x86_64.qpkg.md5 LazyLibrarian_240225_x86_64.qpkg LazyLibrarian 240225 i64 484e29ef83f6408748c6869d5e0b67c9 +LazyLibrarian_240225_x86.qpkg.md5 LazyLibrarian_240225_x86.qpkg LazyLibrarian 240225 i86 a782935822133e871b0beffa26e0c32d +Mylar3_240225_arm_64.qpkg.md5 Mylar3_240225_arm_64.qpkg Mylar3 240225 a64 bb3484c410b4fbc45abb788c5b79ddaa +Mylar3_240225_x86_64.qpkg.md5 Mylar3_240225_x86_64.qpkg Mylar3 240225 i64 a67e47c17b4029924f1d4e02bf9c9963 +Mylar3_240225_x86.qpkg.md5 Mylar3_240225_x86.qpkg Mylar3 240225 i86 372cc564c6ae7f341133af60b70b2a1a +NZBGet_240219.qpkg.md5 NZBGet_240219.qpkg NZBGet 240219 all 43052f9fbac0609125a5600830f315c2 +NZBHydra2_240219_arm_64.qpkg.md5 NZBHydra2_240219_arm_64.qpkg NZBHydra2 240219 a64 982a4d30c6e74585fa36a9e287b649c5 +NZBHydra2_240219_x86_64.qpkg.md5 NZBHydra2_240219_x86_64.qpkg NZBHydra2 240219 i64 6f9a720decf6622e2e38576f147d7d37 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_240211_arm_64.qpkg.md5 OLidarr_240211_arm_64.qpkg OLidarr 240211 a64 152461a0927c003a7ba704a5edd2ca07 -OLidarr_240211_x86_64.qpkg.md5 OLidarr_240211_x86_64.qpkg OLidarr 240211 i64 b2acf458b70214b00d6735ac5f81089a -OliveTin_240211_arm_64.qpkg.md5 OliveTin_240211_arm_64.qpkg OliveTin 240211 a64 b5885f61815108abc6fa180c74adcc08 -OliveTin_240211_arm-x19.qpkg.md5 OliveTin_240211_arm-x19.qpkg OliveTin 240211 a19 d22132377f731eb4bc7b0ba4666ac3e6 -OliveTin_240211_arm-x31.qpkg.md5 OliveTin_240211_arm-x31.qpkg OliveTin 240211 a31 d458f1b21ef0a393cafa4d7632907ca6 -OliveTin_240211_arm-x41.qpkg.md5 OliveTin_240211_arm-x41.qpkg OliveTin 240211 a41 9caf59464be41064862f2641bd18d670 -OliveTin_240211_x86_64.qpkg.md5 OliveTin_240211_x86_64.qpkg OliveTin 240211 i64 34c6f4f076ba20fd0a897530adcfc6cd -OMedusa_240211.qpkg.md5 OMedusa_240211.qpkg OMedusa 240211 all 0952217e331ab9aa88e9d7654f437c08 -OqBittorrent_240211.qpkg.md5 OqBittorrent_240211.qpkg OqBittorrent 240211 all 686844a6b4106a979d368530de36d5e9 -OReadarr_240211_arm_64.qpkg.md5 OReadarr_240211_arm_64.qpkg OReadarr 240211 a64 604e4f3f7be0960d02b2515477641137 -OReadarr_240211_x86_64.qpkg.md5 OReadarr_240211_x86_64.qpkg OReadarr 240211 i64 409af8f6e52943fde1605bb8ca562c41 -OSickGear_240211_arm_64.qpkg.md5 OSickGear_240211_arm_64.qpkg OSickGear 240211 a64 50ec9b867b831c44dd9a381d1b261912 -OSickGear_240211_x86_64.qpkg.md5 OSickGear_240211_x86_64.qpkg OSickGear 240211 i64 563a5d90bcadd7a3b8515478e72d8e16 -OSickGear_240211_x86.qpkg.md5 OSickGear_240211_x86.qpkg OSickGear 240211 i86 816359472c21d6dccd59d1bcacccb277 -OSonarr_240211_arm_64.qpkg.md5 OSonarr_240211_arm_64.qpkg OSonarr 240211 a64 d64be5d16a495e3ec5fc712163efa2bc -OSonarr_240211_x86_64.qpkg.md5 OSonarr_240211_x86_64.qpkg OSonarr 240211 i64 6dc4b37b76b207962df8f6dd40b662aa -OTautulli_240211_arm_64.qpkg.md5 OTautulli_240211_arm_64.qpkg OTautulli 240211 a64 9fbe077094ce0f553f9d1fc5e7226742 -OTautulli_240211_x86_64.qpkg.md5 OTautulli_240211_x86_64.qpkg OTautulli 240211 i64 aceae3337231bfbf40b4f9e6513cf23d -OTautulli_240211_x86.qpkg.md5 OTautulli_240211_x86.qpkg OTautulli 240211 i86 1fbd67cd45d308e807577de74d8e185d -OTransmission_240211.qpkg.md5 OTransmission_240211.qpkg OTransmission 240211 all afe6ab92b021c9366219459914212c44 -OWatcher3_240211.qpkg.md5 OWatcher3_240211.qpkg OWatcher3 240211 all cc7c5efd31c237b184434785bd8d50a8 -OWhisparr_240211_arm_64.qpkg.md5 OWhisparr_240211_arm_64.qpkg OWhisparr 240211 a64 eb61ed9c30aa6516bd14beb67f6a5b94 -OWhisparr_240211_x86_64.qpkg.md5 OWhisparr_240211_x86_64.qpkg OWhisparr 240211 i64 12e5a4db028a6087b2f7f5281e040faa +OLidarr_240219_arm_64.qpkg.md5 OLidarr_240219_arm_64.qpkg OLidarr 240219 a64 a520780e3a1c20029767cc6944bea898 +OLidarr_240219_x86_64.qpkg.md5 OLidarr_240219_x86_64.qpkg OLidarr 240219 i64 928d2acda70a064fea42537266f1fad7 +OliveTin_240219_arm_64.qpkg.md5 OliveTin_240219_arm_64.qpkg OliveTin 240219 a64 f33b7fe22f2324be2c6f57fc9daaf6df +OliveTin_240219_arm-x19.qpkg.md5 OliveTin_240219_arm-x19.qpkg OliveTin 240219 a19 ba45d934b2968479f193c4f0894b23bc +OliveTin_240219_arm-x31.qpkg.md5 OliveTin_240219_arm-x31.qpkg OliveTin 240219 a31 b46d0548e48a8e65cde6735c32935a37 +OliveTin_240219_arm-x41.qpkg.md5 OliveTin_240219_arm-x41.qpkg OliveTin 240219 a41 d172867ea7f656a1a35922c0881b74f8 +OliveTin_240219_x86_64.qpkg.md5 OliveTin_240219_x86_64.qpkg OliveTin 240219 i64 5f10e36e88dc7994235ac3266aaeccd4 +OMedusa_240225.qpkg.md5 OMedusa_240225.qpkg OMedusa 240225 all fc4c95055e78bf613ca12dadf5c01fb4 +OqBittorrent_240219.qpkg.md5 OqBittorrent_240219.qpkg OqBittorrent 240219 all 62fd4e1c82564354b30017870c68e0fe +OReadarr_240219_arm_64.qpkg.md5 OReadarr_240219_arm_64.qpkg OReadarr 240219 a64 4b02cbf1d71945664c92238d3ceb7a49 +OReadarr_240219_x86_64.qpkg.md5 OReadarr_240219_x86_64.qpkg OReadarr 240219 i64 a4685fff7768af4d3f361d9cb1b80a67 +OSickGear_240225_arm_64.qpkg.md5 OSickGear_240225_arm_64.qpkg OSickGear 240225 a64 efa2aecffa7e995f1c7e82f88425e2f3 +OSickGear_240225_x86_64.qpkg.md5 OSickGear_240225_x86_64.qpkg OSickGear 240225 i64 7fe09723a33f55bdc6683232f4612499 +OSickGear_240225_x86.qpkg.md5 OSickGear_240225_x86.qpkg OSickGear 240225 i86 428c0d4b80fa0bf8655a5b2d39110074 +OSonarr_240219_arm_64.qpkg.md5 OSonarr_240219_arm_64.qpkg OSonarr 240219 a64 84a457b5659aef704a258bd221c1fa2d +OSonarr_240219_x86_64.qpkg.md5 OSonarr_240219_x86_64.qpkg OSonarr 240219 i64 5659be199cf0299b72ebf9c5216bb8f3 +OTautulli_240225_arm_64.qpkg.md5 OTautulli_240225_arm_64.qpkg OTautulli 240225 a64 162260fa0e76be641335833d6dd1884e +OTautulli_240225_x86_64.qpkg.md5 OTautulli_240225_x86_64.qpkg OTautulli 240225 i64 81ab5127dceeabe26d42b794e176933c +OTautulli_240225_x86.qpkg.md5 OTautulli_240225_x86.qpkg OTautulli 240225 i86 0a5dec1ee26d3d7f36464c19a13bcd0c +OTransmission_240219.qpkg.md5 OTransmission_240219.qpkg OTransmission 240219 all b34792283ddcbece726edf17488e0833 +OWatcher3_240225.qpkg.md5 OWatcher3_240225.qpkg OWatcher3 240225 all 2b29b0fd517c29f906d62bb72a518e84 +OWhisparr_240219_arm_64.qpkg.md5 OWhisparr_240219_arm_64.qpkg OWhisparr 240219 a64 9ae7b4d857ced315527df0d82866bdd9 +OWhisparr_240219_x86_64.qpkg.md5 OWhisparr_240219_x86_64.qpkg OWhisparr 240219 i64 3fecec9a22988fe5df9ba81cc3a41d0e 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_240211_arm_64.qpkg.md5 pyLoad_240211_arm_64.qpkg pyLoad 240211 a64 53a58d52728714606ffadae51da24fb7 -pyLoad_240211_arm-x19.qpkg.md5 pyLoad_240211_arm-x19.qpkg pyLoad 240211 a19 2731b51cc6e5ab40a6feb757c70eac64 -pyLoad_240211_arm-x41.qpkg.md5 pyLoad_240211_arm-x41.qpkg pyLoad 240211 a41 07c2bb5eccddb2f561ea79dc03cf405e -pyLoad_240211_x86_64.qpkg.md5 pyLoad_240211_x86_64.qpkg pyLoad 240211 i64 c2ead37810b57971f0c29c0fec75acc3 -pyLoad_240211_x86.qpkg.md5 pyLoad_240211_x86.qpkg pyLoad 240211 i86 84285c70f1ea263c977b9c074c851620 +pyLoad_240225_arm_64.qpkg.md5 pyLoad_240225_arm_64.qpkg pyLoad 240225 a64 9eb6145f41140db6d4e49a6752da4a8b +pyLoad_240225_arm-x19.qpkg.md5 pyLoad_240225_arm-x19.qpkg pyLoad 240225 a19 404879b7103b38cfd39519f0db5ed595 +pyLoad_240225_arm-x41.qpkg.md5 pyLoad_240225_arm-x41.qpkg pyLoad 240225 a41 6189972b250a284d70f65aeb5fe03c20 +pyLoad_240225_x86_64.qpkg.md5 pyLoad_240225_x86_64.qpkg pyLoad 240225 i64 d9f6e2cd4d8e265423d16b4522571597 +pyLoad_240225_x86.qpkg.md5 pyLoad_240225_x86.qpkg pyLoad 240225 i86 55b01deee508ed76e620e91a575dd663 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_240211_arm_64.qpkg.md5 SABnzbd_240211_arm_64.qpkg SABnzbd 240211 a64 97021d3915d2d5ba76064d0d3072a9ce -SABnzbd_240211_arm-x19.qpkg.md5 SABnzbd_240211_arm-x19.qpkg SABnzbd 240211 a19 550c2b29276acbf1a208a373ae93dd11 -SABnzbd_240211_arm-x31.qpkg.md5 SABnzbd_240211_arm-x31.qpkg SABnzbd 240211 a31 5863c68ca890fca578c24086723149d5 -SABnzbd_240211_arm-x41.qpkg.md5 SABnzbd_240211_arm-x41.qpkg SABnzbd 240211 a41 4964e174e429890ac6429660c9ec12bd -SABnzbd_240211_x86_64.qpkg.md5 SABnzbd_240211_x86_64.qpkg SABnzbd 240211 i64 95b3edee2c7a27debfcef15de1fa57f9 -SABnzbd_240211_x86.qpkg.md5 SABnzbd_240211_x86.qpkg SABnzbd 240211 i86 280e1dcc475f11424973266dd6184966 +SABnzbd_240225_arm_64.qpkg.md5 SABnzbd_240225_arm_64.qpkg SABnzbd 240225 a64 2d24b47e194fa38c2620ad437ef9acfd +SABnzbd_240225_arm-x19.qpkg.md5 SABnzbd_240225_arm-x19.qpkg SABnzbd 240225 a19 abbf59076d7b85d58f83cf9a0e2464d5 +SABnzbd_240225_arm-x31.qpkg.md5 SABnzbd_240225_arm-x31.qpkg SABnzbd 240225 a31 0d9cb7f178465fbab5ce967420f2c018 +SABnzbd_240225_arm-x41.qpkg.md5 SABnzbd_240225_arm-x41.qpkg SABnzbd 240225 a41 a361394f1c1217cc86a1d07434506f1e +SABnzbd_240225_x86_64.qpkg.md5 SABnzbd_240225_x86_64.qpkg SABnzbd 240225 i64 feac48d0a9d54dc386a24be1ac0c3697 +SABnzbd_240225_x86.qpkg.md5 SABnzbd_240225_x86.qpkg SABnzbd 240225 i86 7fb29ea8bb3409084fbd074b873faa54 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_240212.qpkg.md5 sherpa_240212.qpkg sherpa 240212 all 55fea94f6801fa74d44669849365b487 -SortMyQPKGs_240112.qpkg.md5 SortMyQPKGs_240112.qpkg SortMyQPKGs 240112 all 0fa5518749bd72c76da040162a0be3d6 +sherpa_240225.qpkg.md5 sherpa_240225.qpkg sherpa 240225 all 3c65e3227748894039dd285ceb6a532b +SortMyQPKGs_240225.qpkg.md5 SortMyQPKGs_240225.qpkg SortMyQPKGs 240225 all 44643edd1a10db13caa48a46f0a8d3c5 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_240211_arm_64.qpkg.md5 WebSSH_240211_arm_64.qpkg WebSSH 240211 a64 4d7cff3324c8850200140e84f94804b0 -WebSSH_240211_x86_64.qpkg.md5 WebSSH_240211_x86_64.qpkg WebSSH 240211 i64 95b22dfce258ad79356e8144435d3c89 -WebSSH_240211_x86.qpkg.md5 WebSSH_240211_x86.qpkg WebSSH 240211 i86 2e3356a90df3fffcc328686e486783d9 +WebSSH_240225_arm_64.qpkg.md5 WebSSH_240225_arm_64.qpkg WebSSH 240225 a64 bb855ee39785c1ae213a6f7ada9270b2 +WebSSH_240225_x86_64.qpkg.md5 WebSSH_240225_x86_64.qpkg WebSSH 240225 i64 33453fe883b116e5e3358f0229a518c2 +WebSSH_240225_x86.qpkg.md5 WebSSH_240225_x86.qpkg WebSSH 240225 i86 693aefcad2eab3a205af67f6f431878b diff --git a/support/packages.source b/support/packages.source index db4c9ee49..7c8877e4f 100644 --- a/support/packages.source +++ b/support/packages.source @@ -4,8 +4,8 @@ BASE_QPKG_CONFLICTS_WITH='TarMT' BASE_QPKG_WARNINGS='Qboost' ESSENTIAL_IPKS='ca-certificates column coreutils-sleep coreutils-sort coreutils-stty coreutils-timeout findutils gcc git git-http grep less nano sed sqlite3-cli' ESSENTIAL_PIPS='pip virtualenv' # 'pip' is listed here to ensure an upgrade to the the 'python3-pip' IPKG from Entware. -MIN_PYTHON_VER=3114 # keep this up-to-date with Entware Python3 version, so IPK upgrade notifier will work. -MIN_PERL_VER=5281 # keep this up-to-date with Entware Perl version, so IPK upgrade notifier will work. +MIN_PYTHON_VER=3117 # keep this up-to-date with Entware Python3 version, so IPK upgrade notifier will work. +MIN_PERL_VER=5382 # keep this up-to-date with Entware Perl version, so IPK upgrade notifier will work. # use pseudo-alpha-sorted QPKG name order (i.e. disregard character-case and leading 'O'). # indent QPKGs with same name but different arch. @@ -78,7 +78,7 @@ QPKG_APP_VERSION+=(2.1.1) QPKG_DESC+=('Deluge BitTorrent daemon. Deluge is a free and open-source, cross-platform BitTorrent client written in Python') QPKG_NOTE+=(none) QPKG_ABBRVS+=('dl deluge del-server deluge-server') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('deluge jq python3-cryptography python3-pillow python3-pip python3-setuptools') QPKG_CAN_BACKUP+=(true) @@ -103,7 +103,7 @@ QPKG_APP_VERSION+=(2.1.1) QPKG_DESC+=('web UI to access multiple Deluge BitTorrent daemons. Deluge is a free and open-source, cross-platform BitTorrent client written in Python') QPKG_NOTE+=(none) QPKG_ABBRVS+=('dw del-web deluge-web') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=('Entware Deluge-server') QPKG_REQUIRES_IPKS+=('deluge-ui-web jq python3-cryptography python3-pillow python3-pip python3-setuptools') QPKG_CAN_BACKUP+=(true) @@ -278,7 +278,7 @@ QPKG_APP_VERSION+=(3.4.0.2) QPKG_DESC+=('an open-source system cross-platform monitoring tool') QPKG_NOTE+=(none) QPKG_ABBRVS+=('gl glan glance glances') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('python3-dateutil python3-defusedxml python3-cffi python3-cryptography python3-dev python3-packaging python3-pip python3-psutil python3-requests python3-setuptools python3-six') QPKG_CAN_BACKUP+=(false) @@ -303,7 +303,7 @@ QPKG_APP_VERSION+=(0.6.1) QPKG_DESC+=('Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, Deluge and Blackhole') QPKG_NOTE+=(none) QPKG_ABBRVS+=('hp hp3 head phones hphones headphones3 headphones') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('python3-dev python3-pip python3-requests python3-setuptools') QPKG_CAN_BACKUP+=(true) @@ -352,7 +352,7 @@ QPKG_APP_AUTHOR_EMAIL+=("onecdonly@gmail.com") QPKG_APP_VERSION+=(version) QPKG_DESC+=("increase timeouts for the 'qpkg_service' utility from 3 minutes (default) to 30 minutes") QPKG_NOTE+=(none) -QPKG_ABBRVS+=('in increase increasetimeouts') +QPKG_ABBRVS+=('in increase increase-timeouts increasetimeouts') QPKG_CONFLICTS_WITH+=(none) QPKG_DEPENDS_ON+=(none) QPKG_REQUIRES_IPKS+=(none) @@ -403,7 +403,7 @@ QPKG_APP_VERSION+=(1.0.0-beta-4) QPKG_DESC+=('Kapowarr is a software to build and manage a comic book library, fitting in the *arr suite of software') QPKG_NOTE+=("arm64, x86 & x86-64 NAS architectures-only") QPKG_ABBRVS+=('ka kap kapo kapow kapowar kapowarr') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('python3-certifi python3-cffi python3-cryptography python3-dev python3-mako python3-pillow python3-pip python3-pyopenssl python3-requests python3-setuptools python3-yaml') QPKG_CAN_BACKUP+=(true) @@ -478,7 +478,7 @@ QPKG_APP_VERSION+=(unknown) QPKG_DESC+=('LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs') QPKG_NOTE+=("arm64, x86 & x86-64 NAS architectures-only") QPKG_ABBRVS+=('ll lazy lazylibrarian') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('python3-certifi python3-cffi python3-cryptography python3-dev python3-mako python3-pillow python3-pip python3-pyopenssl python3-requests python3-setuptools python3-yaml') QPKG_CAN_BACKUP+=(true) @@ -549,7 +549,7 @@ QPKG_AUTHOR+=('OneCD (OneCDOnly on GitHub)') QPKG_AUTHOR_EMAIL+=("onecdonly@gmail.com") QPKG_APP_AUTHOR+=('Mark McDowall (markus101 on GitHub)') QPKG_APP_AUTHOR_EMAIL+=(none) -QPKG_APP_VERSION+=(2.0.7.3849) +QPKG_APP_VERSION+=(2.1.7.4030) QPKG_DESC+=('Lidarr is a music collection manager for Usenet and BitTorrent users') QPKG_NOTE+=("arm64 & x86-64 NAS architectures-only") QPKG_ABBRVS+=('li lid olid lidar lidarr olidarr') @@ -603,7 +603,7 @@ QPKG_APP_VERSION+=(1.0.19) QPKG_DESC+=('another SickBeard fork: manage and search for TV shows') QPKG_NOTE+=(none) QPKG_ABBRVS+=('om med omed medusa omedusa') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('mediainfo python3-dev python3-pip python3-setuptools') QPKG_CAN_BACKUP+=(true) @@ -628,7 +628,7 @@ QPKG_APP_VERSION+=(0.7.8) QPKG_DESC+=('automated Comic Book (cbr/cbz) downloader program for use with NZB and torrents') QPKG_NOTE+=("arm64, x86 & x86-64 NAS architectures-only") QPKG_ABBRVS+=('my myl mylar mylar3') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('python3-dev python3-pillow python3-pip python3-requests python3-setuptools') QPKG_CAN_BACKUP+=(true) @@ -724,7 +724,7 @@ QPKG_AUTHOR+=('OneCD (OneCDOnly on GitHub)') QPKG_AUTHOR_EMAIL+=("onecdonly@gmail.com") QPKG_APP_AUTHOR+=("theotherp@GitHub") QPKG_APP_AUTHOR_EMAIL+=(none) -QPKG_APP_VERSION+=(5.3.7) +QPKG_APP_VERSION+=(5.3.8) QPKG_DESC+=('meta search for newznab indexers and torznab trackers') QPKG_NOTE+=("arm64 & x86-64 NAS architectures-only") QPKG_ABBRVS+=('nh hy nzbh hydra hydra2 nzbhydra nzbhydra2') @@ -778,7 +778,7 @@ QPKG_APP_VERSION+=(12.1.12) QPKG_DESC+=('provides NZB and Torrent postprocessing for multiple services') QPKG_NOTE+=(none) QPKG_ABBRVS+=('n2 nt nzb2 nzb2m nzbto nzbtom nzbtomedia') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('python3-pip python3-setuptools') QPKG_CAN_BACKUP+=(true) @@ -1249,7 +1249,7 @@ QPKG_AUTHOR+=('OneCD (OneCDOnly on GitHub)') QPKG_AUTHOR_EMAIL+=("onecdonly@gmail.com") QPKG_APP_AUTHOR+=('Mark McDowall (markus101 on GitHub)') QPKG_APP_AUTHOR_EMAIL+=(none) -QPKG_APP_VERSION+=(0.3.14.2358) +QPKG_APP_VERSION+=(0.3.18.2411) QPKG_DESC+=('Readarr is a ebook collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new books from your favorite authors and will interface with clients and indexers to grab, sort, and rename them') QPKG_NOTE+=("arm64 & x86-64 NAS architectures-only") QPKG_ABBRVS+=('rd red read readar readarr oreadarr') @@ -1328,7 +1328,7 @@ QPKG_APP_VERSION+=(4.2.2) QPKG_DESC+=('full-featured NZB download manager with a nice web UI') QPKG_NOTE+=(none) QPKG_ABBRVS+=('sb sb3 sab sab3 sabnzbd3 sabnzbd') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=('Entware Par2turbo|Par2 Unrar') QPKG_REQUIRES_IPKS+=('coreutils-nice ffprobe ionice python3-cffi python3-cryptography python3-dev python3-pip python3-setuptools p7zip') QPKG_CAN_BACKUP+=(true) @@ -1549,11 +1549,11 @@ QPKG_AUTHOR+=('OneCD (OneCDOnly on GitHub)') QPKG_AUTHOR_EMAIL+=("onecdonly@gmail.com") QPKG_APP_AUTHOR+=("Jack Dandy on GitHub") QPKG_APP_AUTHOR_EMAIL+=(none) -QPKG_APP_VERSION+=(3.30.9) +QPKG_APP_VERSION+=(3.30.10) QPKG_DESC+=('very stable SickBeard fork: manage and search for TV shows') QPKG_NOTE+=("arm64, x86 & x86-64 NAS architectures-only") QPKG_ABBRVS+=('sg os osg sick gear sickg ogear osickg sickgear osickgear') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('python3-cffi python3-cryptography python3-dev python3-pip python3-setuptools python3-lxml') QPKG_CAN_BACKUP+=(true) @@ -1703,7 +1703,7 @@ QPKG_APP_VERSION+=(2.13.4) QPKG_DESC+=('A Python based monitoring and tracking tool for Plex Media Server') QPKG_NOTE+=("arm64, x86 & x86-64 NAS architectures-only") QPKG_ABBRVS+=('ta tt tau taut otaut tautilli otautilli') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('python3-certifi python3-cffi python3-cryptography python3-dev python3-mako python3-pillow python3-pip python3-pyopenssl python3-requests python3-setuptools python3-yaml') QPKG_CAN_BACKUP+=(true) @@ -1878,7 +1878,7 @@ QPKG_APP_VERSION+=(unknown) QPKG_DESC+=("automated movie NZB & Torrent searcher and snatcher") QPKG_NOTE+=(none) QPKG_ABBRVS+=('wt wat owat watch watcher owatcher watcher3 owatcher owatcher3') -QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311') +QPKG_CONFLICTS_WITH+=('Python3 QPython3 QPython39 QPython310 QPython311 QPython312') QPKG_DEPENDS_ON+=(Entware) QPKG_REQUIRES_IPKS+=('jq python3-dev python3-pip python3-setuptools') QPKG_CAN_BACKUP+=(true) diff --git a/support/pip-exclusions.txt b/support/pip-exclusions.txt index 24617b2e7..0bd1cb7de 100644 --- a/support/pip-exclusions.txt +++ b/support/pip-exclusions.txt @@ -16,6 +16,5 @@ pyzmq requests setuptools six -urllib3 wifi zeroconf diff --git a/support/pip-rename.txt b/support/pip-rename.txt index d68f0ff78..b8b558189 100644 --- a/support/pip-rename.txt +++ b/support/pip-rename.txt @@ -1,6 +1,3 @@ # These 'many2linux' module builds are not seen in Python unless each module shared object file is renamed. -brotli rpds -sabctools sabyenc3 -ujson diff --git a/support/service.lib b/support/service.lib index 6995264e5..2c64626b8 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='240206' +readonly SERVICE_LIB_VERSION='240219' InitLibrary() { IsQNAP || exit diff --git a/support/sherpa-manager.source b/support/sherpa-manager.source index 96e7e3c30..868268669 100755 --- a/support/sherpa-manager.source +++ b/support/sherpa-manager.source @@ -48,36 +48,25 @@ Init() Env:Load || return LockFile:Claim || return Traps:Set + Paths:Create || return PrepareArgs ParseManagementArgs || return + SwitchColourful + SwitchSourceBranch ParseHelpArgs || return - Lists:Load - Paths:Create || return ArchivePriorSessLogs Debug.Log:Init - - if [[ $load_objects = true ]]; then - Objects:Load || return - fi - - if [[ $load_packages = true ]]; then - QPKGs.States:Clear - Packages:Load || return -# ParseListArgs - ParseActionArgs - fi - - Title:Show - ParseShowArgs || return - # loop through remaining args here, and look for chances to assign them to 'help', 'list', 'action' or 'show'. + ParseListArgs || return + ParseActionArgs || return + Title:Show ArgSuggestions:Show QPKGs.Conflicts:Check || return QPKGs.Warnings:Check Debug.Log:Env Tasks:Check - Validate - [[ $opts_switch_follow_branch = true ]] && SwitchSourceBranch + Env:Validate + QPKGs:AssignToActions return 0 @@ -87,73 +76,35 @@ Results:Show() { Func:Init - display_last_action_datetime=false - if [[ $write_report = true ]]; then - if [[ $opts_show_abbreviations = true ]]; then - Report.Abbreviations:Show - elif [[ $opts_show_actions = true ]]; then - Report.Actions:Show - elif [[ $opts_show_actions_all = true ]]; then - Report.ActionsAll:Show - elif [[ $opts_show_lists = true ]]; then - Report.Lists:Show - elif [[ $opts_show_options = true ]]; then - Report.Options:Show - elif [[ $opts_show_problems = true ]]; then - Report.Problems:Show - elif [[ $opts_show_groups = true ]]; then - Report.Groups:Show - elif [[ $opts_show_versions = true ]]; then - Report.Versions:Show - fi + display_last_action_datetime=false - if [[ $opts_show_backups = true ]]; then + if [[ $generate_show_report = true ]]; then + if [[ $useropt_show_log_last = true ]]; then + LockFile:Release + Log.Last:View + elif [[ $useropt_show_log_tail = true ]]; then + LockFile:Release + Log.Tail:View + elif [[ $useropt_show_backups = true ]]; then Report.Backups:Show - fi - - if [[ $opts_show_dependencies = true ]]; then + elif [[ $useropt_show_versions = true ]]; then + Report.Versions:Show + elif [[ $useropt_show_dependencies = true ]]; then Report.Dependencies:Show - fi - - if [[ $opts_show_packages = true ]]; then + elif [[ $useropt_show_packages = true ]]; then Report.Packages:Show - fi - - if [[ $opts_show_repos = true ]]; then + elif [[ $useropt_show_repos = true ]]; then Report.Repos:Show - fi - - if [[ $opts_show_results = true ]]; then - display_last_action_datetime=true - opts_show_packages_ok=true - opts_show_packages_skipped=true - opts_show_packages_failed=true - fi - - if [[ $opts_show_status = true ]]; then + elif [[ $useropt_show_status = true ]]; then Report.Statuses:Show - opts_show_packages_ok=false - opts_show_packages_skipped=false - opts_show_packages_failed=false - fi - - if [[ $opts_show_tips = true ]]; then - Report.Tips:Show - fi - - if [[ $opts_paste_log_last = true ]]; then - Log.Last:Paste - elif [[ $opts_paste_log_tail = true ]]; then - Log.Tail:Paste - elif [[ $opts_show_log_last = true ]]; then - LockFile:Release - Log.Last:View - elif [[ $opts_show_log_tail = true ]]; then - LockFile:Release - Log.Tail:View + show_package_actions_ok=false + show_package_actions_skipped=false + show_package_actions_failed=false fi + fi + if [[ $generate_list_report = true ]]; then if [[ ${packages_loaded:=false} = true ]]; then if QPKGs.AClist.ISbackedup.IsSet; then QPKGs.IsBackedUp:Show @@ -181,27 +132,68 @@ Results:Show() fi fi - if [[ $opts_show_basic_help = true ]]; then + if [[ $useropt_paste_log_last = true ]]; then + Log.Last:Paste + elif [[ $useropt_paste_log_tail = true ]]; then + Log.Tail:Paste + fi + + if [[ $useropt_help_basic = true ]]; then Help.Basic:Show Help.Basic.Examples:Show fi - # Action results. - [[ $opts_show_packages_ok = true ]] && Report.Results:Show ok - [[ $opts_show_packages_skipped = true ]] && Report.Results:Show skipped - [[ $opts_show_packages_failed = true ]] && Report.Results:Show failed - [[ $opts_show_backuploc = true ]] && Help.BackupLocation:Show - [[ $show_zero_qpkgs = true ]] && ShowZeroQpkgs + if [[ $generate_help_report = true ]]; then + if [[ $useropt_help_tips = true ]]; then + Help.Tips:Show + elif [[ $useropt_help_abbreviations = true ]]; then + Help.Abbreviations:Show + elif [[ $useropt_help_actions = true ]]; then + Help.Actions:Show + elif [[ $useropt_help_actions_all = true ]]; then + Help.ActionsAll:Show + elif [[ $useropt_help_lists = true ]]; then + Help.Lists:Show + elif [[ $useropt_help_options = true ]]; then + Help.Options:Show + elif [[ $useropt_help_packages = true ]]; then + Help.Packages:Show + elif [[ $useropt_help_problems = true ]]; then + Help.Problems:Show + elif [[ $useropt_help_upgrades = true ]]; then + Help.Upgrades:Show + elif [[ $useropt_help_groups = true ]]; then + Help.Groups:Show + fi + fi + + if [[ $useropt_show_results = true ]]; then + display_last_action_datetime=true + show_package_actions_ok=true + show_package_actions_skipped=true + show_package_actions_failed=true + fi + + if [[ $generate_action_report = true || $generate_show_report = true ]]; then + [[ $show_package_actions_ok = true ]] && Report.Results:Show ok + [[ $show_package_actions_skipped = true ]] && Report.Results:Show skipped + [[ $show_package_actions_failed = true ]] && Report.Results:Show failed + [[ $show_zero_qpkgs = true ]] && ShowZeroQpkgs + fi + + [[ $show_backuploc = true ]] && Help.BackupLocation:Show [[ $show_suggest_raise_issue = true ]] && Help.Issue:Show + DebugInfoMinSepr DebugScript finished "$(/bin/date)" DebugScript 'elapsed time' "$(FormatSecsToHoursMinutesSecs "$(($(/bin/date +%s)-SCRIPT_STARTSECONDS))")" DebugInfoMajSepr + Func:Exit [[ $archive_debug_afterward = true ]] && ArchiveActiveSessLog ResetActiveSessLog - [[ $title_shown = true && $opts_verbose = false ]] && WriteEmptyLineIfNoneExists # Final on-screen linespace. + [[ $title_shown = true && $useropt_verbose = false ]] && WriteEmptyLineIfNoneExists # Final on-screen linespace. } @@ -215,7 +207,6 @@ Debug.Log:Init() DebugInfo 'Markers: (**) detected, (II) information, (WW) warning, (EE) error, (LL) log file, (--) processing,' DebugInfo '(==) done, (>>) f entry, (<<) f exit, (vv) variable name & value, ($1) positional argument value' DebugInfoMinSepr - DebugVar THIS_PACKAGE_VER DebugVar THIS_SCRIPT_VER DebugVar LOADER_SCRIPT_VER @@ -302,55 +293,62 @@ Vars:Load() action_msg_pipe_fd=none archive_debug_afterward=false backup_stdin_fd=none - check_tasks=true - colourful=true + bypass_package_actions=false + bypass_package_states=false fork_pid='' + generate_action_report=false + generate_help_report=false + generate_list_report=false + generate_show_report=false ipks_downgrade=false ipks_install=false ipks_upgrade=false linespace_visible=false - load_objects=true - load_packages=true package_ver_final_col_width=0 pips_install=false proc_counts_path='' qpkg_timeouts_increased=false + show_backuploc=false + show_package_actions_failed=false + show_package_actions_ok=false + show_package_actions_skipped=false show_suggest_raise_issue=false show_title=true - show_zero_qpkgs=true - skip_package_actions=false + show_zero_qpkgs=false title_shown=false - write_report=false # User-selectable options. - opts_check=false - opts_debug=false - opts_paste_log_last=false - opts_paste_log_tail=false - opts_show_abbreviations=false - opts_show_actions=false - opts_show_actions_all=false - opts_show_backuploc=false - opts_show_backups=false - opts_show_basic_help=false - opts_show_dependencies=false - opts_show_groups=false - opts_show_lists=false - opts_show_log_last=false - opts_show_log_tail=false - opts_show_options=false - opts_show_packages=false - opts_show_packages_failed=false - opts_show_packages_ok=false - opts_show_packages_skipped=false - opts_show_problems=false - opts_show_repos=false - opts_show_results=false - opts_show_status=false - opts_show_tips=false - opts_show_versions=false - opts_switch_follow_branch=false - opts_verbose=false + useropt_check=false + useropt_debug=false + useropt_help_abbreviations=false + useropt_help_actions=false + useropt_help_actions_all=false + useropt_help_basic=false + useropt_help_groups=false + useropt_help_lists=false + useropt_help_options=false + useropt_help_packages=false + useropt_help_problems=false + useropt_help_tips=false + useropt_help_upgrades=false + useropt_paste_log_last=false + useropt_paste_log_tail=false + useropt_show_backups=false + useropt_show_dependencies=false + useropt_show_log_last=false + useropt_show_log_tail=false + useropt_show_packages=false + useropt_show_repos=false + useropt_show_results=false + useropt_show_status=false + useropt_show_versions=false + useropt_switch_branch=false + useropt_switch_colour=false + useropt_verbose=false + + # User-selectable values. + user_switch_branch=stable + user_switch_colourful=false UpdateColourisation @@ -517,8 +515,6 @@ Env:Load() ShowAsProc 'loading environment' - readonly ACTION_ABORT_PATHFILE=/var/run/abort.action - readonly ACTION_MSG_PIPE=/var/run/sherpa.action.messages.pipe readonly CERT_DB_PATHFILE=/etc/config/nas_sign_qpkg.db readonly CPU_CORES=$(GetCPUCores) readonly CONCURRENCY=$CPU_CORES # Maximum concurrent package actions to run. Should probably make this account for CPU speed too. @@ -538,51 +534,48 @@ Env:Load() args=() # command-line argument array. args_incomplete=() - source_branch=stable # Default branch. - - local test_branch=$(/sbin/getcfg sherpa Git_Branch -d unknown -f /etc/config/qpkg.conf) - - if [[ $test_branch = unknown ]]; then - /sbin/setcfg sherpa Git_Branch "$source_branch" -f /etc/config/qpkg.conf - else - source_branch=$test_branch - fi - - readonly OBJECTS_ARCHIVE_URL=''/$source_branch/objects.tar.gz - readonly PACKAGES_ARCHIVE_URL=''/$source_branch/packages.tar.gz + source_branch=$(/sbin/getcfg sherpa Git_Branch -d stable -f /etc/config/qpkg.conf) + readonly OBJECTS_ARCHIVE_URL=''/$source_branch/objects.tar.gz + readonly PACKAGES_ARCHIVE_URL=''/$source_branch/packages.tar.gz readonly QPKG_BU_PATH=$(GetDefVol)/.qpkg_config_backup readonly THIS_PACKAGE_PATH=$(QPKG.GetInstallationPath) + if [[ -z $THIS_PACKAGE_PATH || $THIS_PACKAGE_PATH = undefined || ! -d $THIS_PACKAGE_PATH ]]; then + ShowAsError "$(ShowTitleName) installation path not found. Please reinstall the $(ShowTitleName) QPKG" + return 1 + fi - if [[ -z $THIS_PACKAGE_PATH || $THIS_PACKAGE_PATH = undefined || ! -d $THIS_PACKAGE_PATH ]]; then - ShowAsError "$(ShowTitleName) installation path not found. Please reinstall the sherpa QPKG" - return 1 - fi - - readonly CACHE_PATH=$THIS_PACKAGE_PATH/cache - readonly ACTION_TIMES_PATH=$CACHE_PATH/action.times - readonly DISPLAY_INHIBIT_PATHFILE=$CACHE_PATH/display.inhibit - readonly IPK_CACHE_PATH=$CACHE_PATH/IPKs - readonly IPK_DL_PATH=$CACHE_PATH/IPKs.downloads - readonly IPK_DOWNGRADE_DL_PATH=$CACHE_PATH/IPKs.downgrade - readonly PIP_CACHE_PATH=$CACHE_PATH/PIPs - readonly OBJECTS_ARCHIVE_PATHFILE=$CACHE_PATH/objects.tar.gz - readonly OBJECTS_PATHFILE=$CACHE_PATH/objects - readonly PACKAGES_ARCHIVE_PATHFILE=$CACHE_PATH/packages.tar.gz - readonly PACKAGES_PATHFILE=$CACHE_PATH/packages - readonly PREV_IPK_LIST=$CACHE_PATH/ipk.list.save - readonly PREV_PIP_LIST=$CACHE_PATH/pip.list.save - readonly QPKG_DL_PATH=$CACHE_PATH/QPKGs.downloads - readonly LOGS_PATH=$THIS_PACKAGE_PATH/logs - readonly RAMDISKS_FREESPACE_PATHFILE=$LOGS_PATH/ramdisks.freespace - readonly SCREEN_SESSIONS_PATHFILE=$LOGS_PATH/screen.sessions - readonly SESS_ACTIONS_RESULTS_PATHFILE=$LOGS_PATH/session.action.results.log - readonly SESS_ARCHIVE_PATHFILE=$LOGS_PATH/session.archive.log - readonly SESS_LAST_PATHFILE=$LOGS_PATH/session.last.log - readonly SESS_TAIL_PATHFILE=$LOGS_PATH/session.tail.log - readonly REPORTS_PATH=$THIS_PACKAGE_PATH/reports + readonly CACHE_PATH=$THIS_PACKAGE_PATH/cache + readonly ACTION_TIMES_PATH=$CACHE_PATH/action.times + readonly DISPLAY_INHIBIT_PATHFILE=$CACHE_PATH/display.inhibit + readonly IPK_CACHE_PATH=$CACHE_PATH/IPKs + readonly IPK_DL_PATH=$CACHE_PATH/IPKs.downloads + readonly IPK_DOWNGRADE_DL_PATH=$CACHE_PATH/IPKs.downgrade + readonly PIP_CACHE_PATH=$CACHE_PATH/PIPs + readonly OBJECTS_ARCHIVE_PATHFILE=$CACHE_PATH/objects.tar.gz + readonly OBJECTS_PATHFILE=$CACHE_PATH/objects + readonly PACKAGES_ARCHIVE_PATHFILE=$CACHE_PATH/packages.tar.gz + readonly PACKAGES_PATHFILE=$CACHE_PATH/packages + readonly PREV_IPK_LIST=$CACHE_PATH/ipk.list.save + readonly PREV_PIP_LIST=$CACHE_PATH/pip.list.save + readonly QPKG_DL_PATH=$CACHE_PATH/QPKGs.downloads + readonly LOGS_PATH=$THIS_PACKAGE_PATH/logs + readonly RAMDISKS_FREESPACE_PATHFILE=$LOGS_PATH/ramdisks.freespace + readonly SCREEN_SESSIONS_PATHFILE=$LOGS_PATH/screen.sessions + readonly SESS_ACTIONS_RESULTS_PATHFILE=$LOGS_PATH/session.action.results.log + readonly SESS_ARCHIVE_PATHFILE=$LOGS_PATH/session.archive.log + readonly SESS_LAST_PATHFILE=$LOGS_PATH/session.last.log + readonly SESS_TAIL_PATHFILE=$LOGS_PATH/session.tail.log + sess_active_pathfile=$THIS_PACKAGE_PATH/session.$$.active.log + + # Ephemeral + readonly ACTION_FORKS_COUNT=/var/run/sherpa/actions/forks + readonly ACTION_LOGS_PATH=/var/log/sherpa/actions/logs + readonly QPKG_STATES_PATH=/var/run/sherpa/packages/states + readonly ACTION_ABORT_PATHFILE=$QPKG_STATES_PATH/abort.action + readonly ACTION_MSG_PIPE=$QPKG_STATES_PATH/action.messages.pipe + readonly REPORTS_PATH=/var/log/sherpa/reports readonly REPORT_OUTPUT_PATHFILE=$REPORTS_PATH/report.ansi - sess_active_pathfile=$THIS_PACKAGE_PATH/session.$$.active.log - readonly STATES_PATH=$THIS_PACKAGE_PATH/states + readonly RUN_LOGS_PATH=/var/run/sherpa/run.logs readonly THIS_PACKAGE_VER=$(QPKG.Local.GetVer) readonly THIS_SCRIPT_VER=''-$source_branch @@ -613,6 +606,8 @@ Env:Load() Lists:Load() { + [[ ${lists_loaded:=false} = false ]] || return 0 + # These are used internally by sherpa. # ordered PACKAGE_TIERS=(independent auxiliary dependent) @@ -665,6 +660,8 @@ Lists:Load() readonly "$(Uppercase "$action")"_LOG_FILE=$action.log done + lists_loaded=true + } Paths:Create() @@ -690,11 +687,13 @@ Paths:Create() Debug.Log:Env() { - [[ $skip_package_actions = false ]] || return 0 - [[ $opts_debug = true ]] || return 0 + [[ $bypass_package_actions = false ]] || return 0 + [[ $useropt_debug = true ]] || return 0 Func:Init + ShowAsProc 'logging environment' + DebugInfoMinSepr DebugHardware ok model "$(get_display_name)" DebugHardware ok CPU "$(GetCPUInfo)" @@ -813,6 +812,7 @@ Debug.Log:Env() DebugInfoMinSepr RunAndLog "$SCREEN_CMD -ls" "$SCREEN_SESSIONS_PATHFILE" '' 1 DebugInfoMinSepr + Func:Exit } @@ -822,92 +822,89 @@ Tasks:Check() # Establish whether there's something to-do. - [[ $check_tasks = true ]] || return + if [[ $arg_problem = true || $useropt_help_basic = true ]]; then + bypass_package_actions=true + bypass_package_states=true + fi + + if [[ $bypass_package_states = true ]]; then + return + fi Func:Init - ShowAsProc checking + local action='' + local build_states=false local group='' local state='' - local something_to_do=false - local build_states=false - - for action in "${USER_QPKG_ACTIONS[@]}"; do - if QPKGs-AC${action}-to.IsAny; then - something_to_do=true - build_states=true - break - fi - for group in "${USER_QPKG_SC_GROUPS[@]}"; do - if QPKGs.AC${action}.SC${group}.IsSet; then - something_to_do=true - build_states=true - break 2 - fi - done + if [[ $useropt_check = true || $useropt_show_status = true ]]; then + build_states=true + elif [[ $useropt_show_dependencies = true || $useropt_show_packages = true || $useropt_show_repos = true ]]; then + build_states=true +# bypass_package_actions=true + elif [[ $useropt_show_results = true || $useropt_help_tips = true ]]; then + : # don't do anything + else + Packages:Load - for group in "${USER_QPKG_SCNT_GROUPS[@]}"; do - if QPKGs.AC${action}.SCNT${group}.IsSet; then - something_to_do=true + for action in "${USER_QPKG_ACTIONS[@]}"; do + if QPKGs-AC${action}-to.IsAny; then build_states=true - break 2 + break fi - done - for state in "${USER_QPKG_IS_STATES[@]}"; do - if QPKGs.AC${action}.IS${state}.IsSet; then - something_to_do=true - build_states=true - break 2 - fi - done + for group in "${USER_QPKG_SC_GROUPS[@]}"; do + if QPKGs.AC${action}.SC${group}.IsSet; then + build_states=true + break 2 + fi + done - for state in "${USER_QPKG_ISNT_STATES[@]}"; do - if QPKGs.AC${action}.ISNT${state}.IsSet; then - something_to_do=true - build_states=true - break 2 - fi - done - done + for group in "${USER_QPKG_SCNT_GROUPS[@]}"; do + if QPKGs.AC${action}.SCNT${group}.IsSet; then + build_states=true + break 2 + fi + done - if [[ $something_to_do = false ]]; then - if [[ $opts_check = true || $opts_show_dependencies = true || $opts_show_packages = true || $opts_show_packages_failed = true || $opts_show_packages_ok = true || $opts_show_packages_skipped = true || $opts_show_repos = true || $opts_show_status = true ]]; then - something_to_do=true - build_states=true - elif [[ $opts_debug = true || $opts_paste_log_last = true || $opts_paste_log_tail = true || $opts_show_abbreviations = true || $opts_show_actions = true || $opts_show_actions_all = true || $opts_show_backups = true || $opts_show_groups = true || $opts_show_log_last = true || $opts_show_lists = true || $opts_show_log_tail = true || $opts_show_options = true || $opts_show_problems = true || $opts_show_results = true || $opts_show_tips = true || $opts_show_versions = true || $opts_verbose = true ]]; then - something_to_do=true - fi - fi + for state in "${USER_QPKG_IS_STATES[@]}"; do + if QPKGs.AC${action}.IS${state}.IsSet; then + build_states=true + break 2 + fi + done - if [[ $something_to_do = false ]]; then - opts_show_basic_help=true - skip_package_actions=true - Func:Exit 1; return + for state in "${USER_QPKG_ISNT_STATES[@]}"; do + if QPKGs.AC${action}.ISNT${state}.IsSet; then + build_states=true + break 2 + fi + done + done fi - write_report=$something_to_do [[ $build_states = true ]] && QPKGs.States:Build + Func:Exit } -Validate() +Env:Validate() { # This function handles most of the high-level logic for package actions. # If a package isn't being processed by the correct action, odds-are it's due to a logic error in this function. - [[ $skip_package_actions = false ]] || return 0 + [[ $bypass_package_actions = false ]] || return 0 Func:Init + local installed_ver='' - local package='' - local action='' - local prospect='' local target_packages='' + ShowAsProc 'validate environment' + if QPKG.IsInstalled Entware; then if [[ $ENTWARE_VER != none ]]; then UpdateEntwarePackageList & # Let's try launching this early. @@ -918,7 +915,7 @@ Validate() # Decide if particular IPKs and PIPs should be installed/upgraded. - if [[ $opts_check = true ]] || QPKGs-ACupgrade-to.Exist Entware; then + if [[ $useropt_check = true ]] || QPKGs-ACupgrade-to.Exist Entware; then ipks_upgrade=true ipks_install=true pips_install=true @@ -973,26 +970,44 @@ Validate() QPKGs-ACupgrade-to:Add sherpa fi - ShowAsProc validating + wait 2>/dev/null # Ensure Entware package updater completes before continuing. + + Func:Exit + + } + +QPKGs:AssignToActions() + { + + [[ $bypass_package_actions = false ]] || return 0 + + Func:Init + + local action='' + local package='' + local prospect='' + + ShowAsProc 'QPKG assignment' # KLUDGE: ensure old installs of Entware are reinstalled. if QPKG.IsInstalled Entware; then local entware_install_date=$(QPKG.GetInstallDate Entware) - if [[ $entware_install_date = undefined || ${entware_install_date//[!0-9]/} -le 20230604 ]]; then - ShowAsNote "the $(TextBrightOrange Entware) QPKG will be auto-reinstalled (Entware packages were updated early June 2023)" + if [[ $entware_install_date = undefined || ${entware_install_date//[!0-9]/} -le 20240224 ]]; then + ShowAsNote "the $(TextBrightOrange Entware) QPKG will be auto-reinstalled (Entware packages were updated late February 2024)" QPKGs-ACreinstall-to:Add Entware fi fi - # Meta-action pre-processing. + # Meta-action pre-processing. Perform check for backup file here, to determine if QPKG should be downloaded and installed. if QPKGs-ACrebuild-to.IsAny; then for package in $(QPKGs-ACrebuild-to:Array); do - QPKGs-ACinstall-to:Add "$package" - QPKGs-ACrestore-to:Add "$package" - QPKGs-ACrebuild-to:Remove "$package" + if QPKG.IsBackupExist "$package"; then + QPKGs-ACinstall-to:Add "$package" + QPKGs-ACrestore-to:Add "$package" + fi done fi @@ -1009,7 +1024,7 @@ Validate() # Install independents for installed dependents. for package in $(QPKGs-ISinstalled:Array); do - if [[ $opts_check = true ]] || QPKGs-ACactivate-to.Exist "$package"; then + if [[ $useropt_check = true ]] || QPKGs-ACactivate-to.Exist "$package"; then for prospect in $(QPKG.GetDependencies "$package"); do QPKGs-ISNTinstalled.Exist "$prospect" && QPKGs-ACinstall-to:Add "$prospect" done @@ -1118,7 +1133,7 @@ Validate() # Check all items. - if [[ $opts_check = true ]]; then + if [[ $useropt_check = true ]] && OS.IsSupportSignedPackages; then QPKGs-ACsign-to:Add "$(QPKGs-ISinstalled:Array)" for package in $(QPKGs-SCdependent:Array); do @@ -1130,8 +1145,6 @@ Validate() QPKG.Signing:Load fi - wait 2>/dev/null # ensure Entware package updater completes before continuing. - Func:Exit } @@ -1139,52 +1152,54 @@ Validate() # QPKG action processing shall be conducted in this order: # # 1. status all -# 2. rebuild all (meta-action: `install` QPKG and `restore` config, but only if package has an existing backup file) +# 2. rebuild all (meta-action: `download`, `install` & `restore` QPKG, but only if package has an existing backup file) # 3. reassign all # 4. download all # 5. backup all # # 6. stop/deactivate dependents # 7. disable dependents +# 8. uninstall dependents # -# 8. stop/deactivate independents -# 9. disable independents +# 9. stop/deactivate independents +# 10. disable independents +# 11. uninstall independents # -# 10. uninstall all +# 12. upgrade independents +# 13. reinstall independents +# 14. install independents +# 15. enable-auto-update independents +# 16. disable-auto-update independents +# 17. "sign" independents +# 18. restore independents +# 19. clean independents +# 20. enable independents +# 21. restart/reactivate independents +# 22. start/activate independents # -# 11. upgrade independents -# 12. reinstall independents -# 13. install independents -# 14. enable-auto-update independents -# 15. disable-auto-update independents -# 16. "sign" independents -# 17. restore independents -# 18. clean independents -# 19. enable independents -# 20. restart/reactivate independents -# 21. start/activate independents -# -# 22. upgrade dependents -# 23. reinstall dependents -# 24. install dependents -# 25. enable-auto-update dependents -# 26. disable-auto-update dependents -# 27. "sign" dependents -# 28. restore dependents -# 29. clean dependents -# 30. enable dependents -# 31. restart/reactivate dependents -# 32. start/activate dependents +# 23. upgrade dependents +# 24. reinstall dependents +# 25. install dependents +# 26. enable-auto-update dependents +# 27. disable-auto-update dependents +# 28. "sign" dependents +# 29. restore dependents +# 30. clean dependents +# 31. enable dependents +# 32. restart/reactivate dependents +# 33. start/activate dependents Actions:Proc() { # Run all actions on selected packages in all tiers. - [[ $skip_package_actions = false ]] || return + [[ $bypass_package_actions = false ]] || return Func:Init + ShowAsProc 'package actions' + local tier='' local action='' local -i tier_index=0 @@ -1192,6 +1207,7 @@ Actions:Proc() rm -f "$SESS_ACTIONS_RESULTS_PATHFILE" Action:Proc status all QPKG statusing statused + Action:Proc rebuild all QPKG meta-rebuilding meta-rebuilt Action:Proc reassign all QPKG reassigning reassigned Action:Proc download all QPKG downloading downloaded Action:Proc backup all QPKG backing-up backed-up @@ -1219,17 +1235,12 @@ Actions:Proc() Action:Proc install $tier QPKG installing installed Action:Proc enableau $tier QPKG 'enabling auto-update' 'enabled auto-update' Action:Proc disableau $tier QPKG 'disabling auto-update' 'disabled auto-update' - - if OS.IsSupportSignedPackages; then - Action:Proc sign $tier QPKG '"signing"' '"signed"' - fi - + Action:Proc sign $tier QPKG '"signing"' '"signed"' Action:Proc restore $tier QPKG restoring restored Action:Proc clean $tier QPKG cleaning cleaned Action:Proc enable $tier QPKG enabling enabled Action:Proc reactivate $tier QPKG reactivating reactivated Action:Proc activate $tier QPKG activating activated - ;; auxiliary) for action in install reinstall upgrade activate; do @@ -1252,17 +1263,17 @@ Actions:Proc() esac done - if [[ $opts_debug = true ]]; then + if [[ $useropt_debug = true ]]; then # PIPs.Actions:List IPKs.Actions:List QPKGs.Actions:List fi - if [[ $title_shown = true && $skip_package_actions = false ]]; then + if [[ $title_shown = true ]]; then if Error.IsNt; then - ShowAsDone 'processing complete' + ShowAsDone 'actions complete' else - ShowAsFail 'processing complete' + ShowAsFail 'actions complete with errors' fi fi @@ -1283,11 +1294,12 @@ Action:Proc() # $5 = $ACTION_PAST_MSG e.g. `activated` ... Func:Init - local -r TARGET_ACTION=${1:?${FUNCNAME[0]}'()': undefined} - local -r TIER=${2:?${FUNCNAME[0]}'()': undefined} - local -r PACKAGE_TYPE=${3:?${FUNCNAME[0]}'()': undefined} - local -r ACTION_PRESENT_MSG=${4:?${FUNCNAME[0]}'()': undefined} - local -r ACTION_PAST=${5:?${FUNCNAME[0]}'()': undefined} + + local -r TARGET_ACTION=${1:?${FUNCNAME[0]}'()': undefined action} + local -r TIER=${2:?${FUNCNAME[0]}'()': undefined tier} + local -r PACKAGE_TYPE=${3:?${FUNCNAME[0]}'()': undefined package type} + local -r ACTION_PRESENT_MSG=${4:?${FUNCNAME[0]}'()': undefined action present} + local -r ACTION_PAST=${5:?${FUNCNAME[0]}'()': undefined action past} total_count=0 local package='' local state='' @@ -1321,6 +1333,7 @@ Action:Proc() if [[ $total_count -eq 0 ]]; then DebugInfo 'nothing to process' + Func:Exit; return fi @@ -1391,13 +1404,13 @@ Action:Proc() esac done - DebugAsWarn "unidentified change in message queue: '$msg1_value'" + DebugAsWarn "unidentified change request in message queue: '$msg1_value'" break done ;; status) # Update the status of a single action fork in the parent shell. case $msg1_value in - ok) # Completed OK (wonderful). + ok) # Completed OK (wonderful!). ((ok_count++)) ;; so) # Action was skipped, but this is normal (no-big-deal). @@ -1411,7 +1424,7 @@ Action:Proc() ;; sa) # Action was skipped and must immediately abort (don't attempt this action again). ((skip_abort_count++)) - [[ ! -e $ACTION_ABORT_PATHFILE ]] && $TOUCH_CMD "$ACTION_ABORT_PATHFILE" + $TOUCH_CMD "$ACTION_ABORT_PATHFILE" break ;; er) # Action failed (uh-oh). @@ -1443,11 +1456,11 @@ Action:Proc() esac done - [[ $ok_count -gt 0 ]] && opts_show_packages_ok=true - [[ $skip_count -gt 0 || $skip_ok_count -gt 0 || $skip_error_count -gt 0 || $skip_abort_count -gt 0 ]] && opts_show_packages_skipped=true - [[ $fail_count -gt 0 ]] && opts_show_packages_failed=true + [[ $ok_count -gt 0 ]] && show_package_actions_ok=true + [[ $skip_count -gt 0 || $skip_ok_count -gt 0 || $skip_error_count -gt 0 || $skip_abort_count -gt 0 ]] && show_package_actions_skipped=true + [[ $fail_count -gt 0 ]] && show_package_actions_failed=true - [[ ${#target_packages[@]} -gt 0 ]] && KillActiveFork # Should only be needed if an action fork didn't exit properly. + [[ ${#target_packages[@]} -gt 0 ]] && KillActiveFork # Only needed if an action fork didn't exit properly. wait 2>/dev/null CloseActionMsgPipe ;; @@ -1459,7 +1472,9 @@ Action:Proc() esac EraseForkCountPaths + Func:Exit + Error.IsNt } @@ -1519,10 +1534,10 @@ AdjustMaxForks() max_forks=$CONCURRENCY local reason='' - if [[ $opts_verbose = true ]]; then # No-point running actions async in verbose mode: stdout will be a confusing mess. + if [[ $useropt_verbose = true ]]; then # No-point running actions async in verbose mode: stdout will be a confusing mess. max_forks=1 reason='verbose mode is active' - elif [[ $opts_debug = true ]]; then # Same goes for debug mode: logs will be a mess. + elif [[ $useropt_debug = true ]]; then # Same goes for debug mode: logs will be a mess. max_forks=1 reason='debug mode is active' else @@ -1531,7 +1546,7 @@ AdjustMaxForks() max_forks=$(((max_forks+1)/2)) reason="'$1'" ;; - install|reinstall|upgrade) # Don't execute these actions async: installer for each package eventually aborts (looks like QPKGs can only be managed one-at-a-time, else packages overwrite each other, and package source files end-up in the wrong install paths). + install|reinstall|upgrade) # Don't execute these actions async: installer for each package eventually aborts (QPKGs can only be managed one-at-a-time, else packages overwrite each other, and package source files end-up in the wrong install paths). max_forks=1 reason="'$1'" ;; @@ -1539,7 +1554,7 @@ AdjustMaxForks() max_forks=4 reason="'$1'" ;; - disable|disableau|enable|enableau|sign|status) # Really-low-resource actions. + disable|disableau|enable|enableau|rebuild|sign|status) # Really-low-resource actions. max_forks=8 reason="'$1'" esac @@ -1564,10 +1579,16 @@ PrepareArgs() # $ARGS_RAW (global) # output: - # $args (global) + # $args[] (global) local a=$(Lowercase "${ARGS_RAW//,/ }") args=(${a/--/}) + arg_problem=false + + if [[ -z $ARGS_RAW ]]; then + bypass_package_actions=true + useropt_help_basic=true + fi } @@ -1578,101 +1599,156 @@ ParseManagementArgs() # scriptname [action] [groups] [options] # input: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # output: - # $args (global) - # $args_incomplete (global) + # $args[] (global) + # $args_incomplete[] (global) + + Func:Init + local action='' local -a args_remaining=() local arg='' - local awaiting_follow_branch=false - local awaiting_paste_source=false - local something_to_do=false + local awaiting_group=false + local new_action='' + local requires_group=false - if [[ -n ${args[*]:-} ]]; then - for arg in "${args[@]}"; do - [[ -n $arg ]] || continue + for arg in "${args[@]:-}"; do + [[ -n $arg ]] || continue - case $arg in - c|check) - opts_check=true - skip_package_actions=false - something_to_do=true - ;; - debug|dbug) - EnableDebugToArchiveAndFile + # Identify action. + + case $arg in + # These cases use only a single user-provided word to specify a single action. + follow|paste) + new_action=$arg + requires_group=true + ;; + reset) + new_action=reset + requires_group=false + Reset # <-- Processing will terminate in this function (no-return). + ;; + # All cases below can use multiple user-provided words or chars to specify a single action. + c|check) + new_action=check + requires_group=false + useropt_check=true + ;; + color|colour|colorful|colourful) + new_action=colour + requires_group=true + ;; + debug|dbug) + EnableDebugToArchiveAndFile + new_action=debug + requires_group=false + ;; + v|verbose) + Verbose:Enable + EnableDebugToArchiveAndFile + new_action=verbose + requires_group=false + ;; + *) + new_action='' + esac + + if [[ -n $new_action && $new_action != "$action" ]]; then + [[ $awaiting_group = true ]] && args_incomplete+=("$action") + [[ $requires_group = false ]] && awaiting_group=false || awaiting_group=true + action=$new_action + group='' # When action changes, must clear group. + continue + fi + + # Identify group. Include action assignment when action hasn't been previously specified. + + case $arg in + # These cases use only a single user-provided word or char to specify a single group. + stable|unstable) + [[ -z $action ]] && action=follow + group=$arg + ;; + # All cases below can use multiple user-provided words or chars to specify a single group. + all|log|tail) + # Don't set a default action for this group, it should prompt user instead. + group=tail + ;; + false|off|disable) + # Don't set a default action for this group, it should prompt user instead. + group=false + ;; + l|last) + # Don't set a default action for this group, it should prompt user instead. + group=last + ;; + true|on|enable) + # Don't set a default action for this group, it should prompt user instead. + group=true + esac + + # Pair action with group. + + if [[ -n $action && -n $group ]]; then + case $action in + colour) + case $group in + true|false) + awaiting_group=false + bypass_package_actions=true + user_switch_colourful=$group + useropt_switch_colour=true + ;; + *) + args_remaining+=("$arg") + esac ;; follow) - awaiting_follow_branch=true - load_objects=false - load_packages=false - skip_package_actions=true - check_tasks=false - something_to_do=true - # Assume next arg will be the source branch to track. + case $group in + stable|unstable) + awaiting_group=false + bypass_package_actions=true + user_switch_branch=$group + useropt_switch_branch=true + ;; + *) + args_remaining+=("$arg") + esac ;; paste) - awaiting_paste_source=true - load_objects=false - load_packages=false - skip_package_actions=true - check_tasks=false - something_to_do=true - # Assume next arg will be the paste source. - ;; - reset) - Reset - ;; - v|verbose) - Verbose:Enable - EnableDebugToArchiveAndFile + case $group in + last) + awaiting_group=false + bypass_package_actions=true + useropt_paste_log_last=true + ;; + tail) + awaiting_group=false + bypass_package_actions=true + useropt_paste_log_tail=true + ;; + *) + args_remaining+=("$arg") + esac ;; *) - if [[ $awaiting_follow_branch = true ]]; then - case $arg in - stable|unstable) - source_branch=$arg - opts_switch_follow_branch=true - awaiting_follow_branch=false - esac - elif [[ $awaiting_paste_source = true ]]; then - case $arg in - all|log|tail) - opts_paste_log_tail=true - awaiting_paste_source=false - ;; - l|last) - opts_paste_log_last=true - awaiting_paste_source=false - esac - else - args_remaining+=($arg) - fi - - something_to_do=true + args_remaining+=("$arg") esac - done - fi - - [[ $awaiting_follow_branch = true ]] && args_incomplete+=(follow) - [[ $awaiting_paste_source = true ]] && args_incomplete+=(paste) + else + args_remaining+=("$arg") + fi + done - if [[ $something_to_do = false && ${#args_remaining[@]} -eq 0 ]]; then - load_objects=false - load_packages=false - skip_package_actions=true - check_tasks=false - opts_show_basic_help=true - opts_show_packages_ok=false - opts_show_packages_skipped=false - opts_show_packages_failed=false - DisableDebugToArchiveAndFile + if [[ $requires_group = true && $awaiting_group = true ]]; then + args_incomplete+=("$action") # Only if the last action specified was not followed by a group. fi args=(${args_remaining[@]:-}) - return 0 + Func:Exit } @@ -1683,139 +1759,206 @@ ParseHelpArgs() # scriptname [action] [groups] [options] # input: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # output: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # various global flags Func:Init - local -a args_remaining=() - local arg='' - local arg_identified=false local action='' + local arg='' + local -a args_remaining=() + local awaiting_group=false local group='' - local something_to_do=false - - if [[ -n ${args[*]:-} ]]; then - for arg in "${args[@]:-}"; do - [[ -n $arg ]] || continue - - arg_identified=false - - # Identify action: each time action changes, must clear group. - - case $arg in - # All cases below can use multiple words or chars to specify a single action. - help) - action=help - arg_identified=true - group='' - show_title=true - skip_package_actions=true - esac + local new_action='' + local requires_group=false - # Identify group in two stages: + for arg in "${args[@]:-}"; do + [[ -n $arg ]] || continue - # Stage 1: when user didn't supply an action before group. + # Identify action. - # Stage 2: after an action has been defined. + case $arg in + # All cases below can use multiple words or chars to specify a single action. + help) + new_action=help + requires_group=true + ;; + *) + new_action='' + esac - if [[ -n $action ]]; then - case $arg in - # These cases use only a single word or char to specify a single group. - actions-all|all-actions) - group=all-actions - ;; - action|actions) - group=actions - ;; - group|groups) - group=groups - ;; - o|option|options) - group=options - ;; - esac + if [[ -n $new_action && $new_action != "$action" ]]; then + [[ $awaiting_group = true ]] && args_incomplete+=("$action") + [[ $requires_group = false ]] && awaiting_group=false || awaiting_group=true + action=$new_action + group='' # When action changes, must clear group. + continue + fi - if [[ -n $group ]]; then - arg_identified=true - fi - fi + # Identify group. Include action assignment when action hasn't been previously specified. - [[ $arg_identified = false ]] && args_remaining+=("$arg") + case $arg in + # These cases use only a single word or char to specify a single group. + lists) + [[ -z $action ]] && action=help + group=lists + ;; + packages|qpkgs) + # Don't set a default action for this group, this group is used for multiple actions. + group=packages + ;; + problems) + [[ -z $action ]] && action=help + group=problems + ;; + tips) + [[ -z $action ]] && action=help + group=tips + ;; + # All cases below can use multiple user-provided words or chars to specify a single group. + a|abs|abbreviations) + # Don't set a default action for this group, this group is used for multiple actions. + group=abs + ;; + action|actions) + [[ -z $action ]] && action=help + group=actions + ;; + all) + # Don't set a default action for this group, this group is used for multiple actions. + group=all-actions + ;; + actions-all|all-actions) + [[ -z $action ]] && action=help + group=all-actions + ;; + group|groups) + [[ -z $action ]] && action=help + group=groups + ;; + o|option|options) + [[ -z $action ]] && action=help + group=options + ;; + upgrade) + # Don't set a default action for this group, this group is used for multiple actions. + group=upgrades + ;; + upgrades|upgrading) + [[ -z $action ]] && action=help + group=upgrades + esac - # Identify options. + # Pair action with group. + if [[ -n $action && -n $group ]]; then case $action in help) - load_objects=false - load_packages=false - skip_package_actions=true - check_tasks=false - something_to_do=true - case $group in abs) - opts_show_abbreviations=true + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_abbreviations=true ;; actions) - opts_show_actions=true - ;; - all-actions|all) - opts_show_actions_all=true + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_actions=true ;; - backups) - opts_show_backups=true - ;; - dependencies) - opts_show_dependencies=true + all-actions) + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_actions_all=true ;; groups) - opts_show_groups=true - ;; - last) - opts_show_log_last=true - show_title=false + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_groups=true ;; - list|lists) - opts_show_lists=true - ;; - log) - opts_show_log_tail=true - show_title=false + lists) + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_lists=true ;; options) - opts_show_options=true + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_options=true ;; packages) - opts_show_packages=true + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_packages=true ;; problems) - opts_show_problems=true + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_problems=true ;; - repos) - opts_show_repos=true - ;; - results) - opts_show_results=true + tips) + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_tips=true ;; - status) - opts_show_status=true + upgrades) + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_upgrades=true ;; - tips) - opts_show_tips=true + *) + args_remaining+=("$arg") esac + ;; + *) + args_remaining+=("$arg") esac - done + else + args_remaining+=("$arg") + fi + done + + if [[ $requires_group = true && $awaiting_group = true ]]; then # Only if the last action specified was not followed by a group. + args_incomplete+=("$action") fi - write_report=$something_to_do + for arg in "${args_incomplete[@]:-}"; do + case $arg in + help) # If `help` is specified without a valid group, then show basic help. + bypass_package_actions=true + useropt_help_basic=true - # When an action has been determined, but no group was found, then show default information. This will usually be the help screen. + # Remove this arg from incomplete array. + local a='' + local tmp=() - [[ -n $action && $action = help && -z $group ]] && opts_show_basic_help=true + for a in "${args_incomplete[@]}"; do + [[ $a != "$arg" ]] && tmp+=($a) + done + + if [[ ${#tmp[@]:-} -eq 0 ]]; then + args_incomplete=() + else + args_incomplete=("${tmp[@]}") + fi + + unset tmp + esac + done args=(${args_remaining[@]:-}) @@ -1823,314 +1966,341 @@ ParseHelpArgs() } -ParseListArgs() +ParseShowArgs() { # Basic argument syntax: # scriptname [action] [groups] [options] # input: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # output: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # various global flags Func:Init - local -a args_remaining=() - local arg='' - local arg_identified=false local action='' + local arg='' + local -a args_remaining=() + local awaiting_group=false local group='' - local awaiting_list_source=false - - if [[ -n ${args[*]:-} ]]; then - for arg in "${args[@]:-}"; do - [[ -n $arg ]] || continue + local new_action='' + local requires_group=false - arg_identified=false + for arg in "${args[@]:-}"; do + [[ -n $arg ]] || continue - # Identify action: each time action changes, must clear group. + # Identify action. - case $arg in - # These cases use only a single word to specify a single action. - list) - action=list - arg_identified=true - group='' - awaiting_list_source=true - esac - - # Identify group in two stages: - - # Stage 1: when user didn't supply an action before group. - - if [[ -z $action ]]; then - case $arg in - dependent|dependents|disabled|enabled|inactive|indeps|independent|independents|installable|installed|missing|non-installable|not-installable|not-installed|stopped|updatable|updateable|upgradable|version|versions) - action=list - arg_identified=true - group='' - awaiting_list_source=true - esac - - DebugVar action - fi + case $arg in + show|view) + new_action=show + requires_group=true + ;; + *) + new_action='' + esac - # Stage 2: after an action has been defined. + if [[ -n $new_action && $new_action != "$action" ]]; then + [[ $awaiting_group = true ]] && args_incomplete+=("$action") + [[ $requires_group = false ]] && awaiting_group=false || awaiting_group=true + action=$new_action + group='' # When action changes, must clear group. + continue + fi - if [[ -n $action ]]; then - case $arg in - # These cases use only a single word or char to specify a single group. - backedup|installable|installed|missing|results) - group=${arg} - awaiting_list_source=false - ;; - not-backedup) - group=NTbackedup - awaiting_list_source=false - ;; - not-installed) - group=NTinstalled - awaiting_list_source=false - ;; - # All cases below can use multiple words or chars to specify a single group. - active|started) - group=active - awaiting_list_source=false - ;; - all|entire|everything) - group=all - awaiting_list_source=false - ;; - b|backups) - group=backups - awaiting_list_source=false - ;; - deps|dependent|dependents) - group=dependent - awaiting_list_source=false - ;; - disabled) - group=NTenabled - awaiting_list_source=false - ;; - inactive|not-active|stopped) - group=NTactive - awaiting_list_source=false - ;; - new|updatable|updateable|upgradable) - group=upgradable - awaiting_list_source=false - ;; - non-installable|not-installable) - group=NTinstallable - awaiting_list_source=false - ;; - independent|independents|indeps) - group=independent - awaiting_list_source=false - ;; - version|versions) - group=versions - awaiting_list_source=false - esac + # Identify group. Include action assignment when action hasn't been previously specified. - [[ -n $group ]] && arg_identified=true - fi + case $arg in + # These cases use only a single user-provided word or char to specify a single group. + backups|results) + [[ -z $action ]] && action=show + group=$arg + ;; + # All cases below can use multiple user-provided words or chars to specify a single group. + a|abs|abbreviations) + # Don't set a default action for this group, this group is used for multiple actions. + group=abs + ;; + deps) + # Don't set a default action for this group, this group is used for multiple actions. + group=dependencies + ;; + d|dependencies) + [[ -z $action ]] && action=show + group=dependencies + ;; + l|last) + [[ -z $action ]] && action=show + group=last + ;; + log|tail) + [[ -z $action ]] && action=show + group=tail + ;; + p|packages|qpkgs) + [[ -z $action ]] && action=show + group=packages + ;; + r|repos|repositories) + [[ -z $action ]] && action=show + group=repositories + ;; + s|status|statuses) + # Don't set a default action for this group, this group is used for multiple actions. + group=status + ;; + esac - [[ $arg_identified = false ]] && args_remaining+=("$arg") + # Pair action with group. - if [[ $action = list ]]; then - show_title=false + if [[ -n $action && -n $group ]]; then + case $action in + show) + case $group in + abs) + awaiting_group=false + bypass_package_actions=true + bypass_package_states=true + generate_help_report=true + useropt_help_abbreviations=true + ;; + backups) + awaiting_group=false + bypass_package_actions=true + bypass_package_states=true + generate_show_report=true + useropt_show_backups=true + ;; + dependencies) + Packages:Load + awaiting_group=false + bypass_package_actions=true + generate_show_report=true + useropt_show_dependencies=true + ;; + last) + awaiting_group=false + bypass_package_actions=true + bypass_package_states=true + generate_show_report=true + useropt_show_log_last=true + ;; + packages) + Packages:Load + awaiting_group=false + bypass_package_actions=true + bypass_package_states=true + generate_show_report=true + useropt_show_packages=true + ;; + repositories) + Packages:Load + awaiting_group=false + bypass_package_actions=true + generate_show_report=true + useropt_show_repos=true + ;; + results) + awaiting_group=false + bypass_package_actions=true + bypass_package_states=true + generate_show_report=true + useropt_show_results=true + ;; + status) + Objects:Load + QPKGs.ACstatus.SCall:Set + awaiting_group=false + generate_show_report=true + useropt_show_status=true + ;; + tail) + awaiting_group=false + bypass_package_actions=true + bypass_package_states=true + generate_show_report=true + useropt_show_log_tail=true + ;; + *) + args_remaining+=("$arg") + esac + ;; + *) + args_remaining+=("$arg") + esac + else + args_remaining+=("$arg") + fi + done - case $group in - backedup|installed|NTbackedup|NTinstalled) - QPKGs.AClist.IS${group}:Set - awaiting_list_source=false - ;; - dependent|disabled|installable|independent|NTinstallable|upgradable) - QPKGs.AClist.SC${group}:Set - awaiting_list_source=false - ;; - versions) - opts_show_versions=true - awaiting_list_source=false - esac - fi - done + if [[ $requires_group = true && $awaiting_group = true ]]; then # Only if the last action specified was not followed by a group. + args_incomplete+=("$action") fi - [[ $awaiting_list_source = true ]] && args_incomplete+=(list) - args=(${args_remaining[@]:-}) Func:Exit } -ParseActionArgs() +ParseListArgs() { + # Basic argument syntax: + # scriptname [action] [groups] [options] + # input: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # output: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # various global flags Func:Init - local -a args_remaining=() - local arg='' - local arg_identified=false local action='' + local arg='' + local -a args_remaining=() + local awaiting_group=false local group='' - local package='' - - if [[ -n ${args[*]:-} ]]; then - for arg in "${args[@]:-}"; do - [[ -n $arg ]] || continue + local new_action='' + local requires_group=false - arg_identified=false + for arg in "${args[@]:-}"; do + [[ -n $arg ]] || continue - # Identify action: each time action changes, must clear group. + # Identify action. - case $arg in - # These cases use only a single word to specify a single action. - backup|clean|enable|disable|reassign|rebuild|reinstall|restore|sign) - action=${arg} - arg_identified=true - group='' - ;; - disable-auto-update) - action=disableau - arg_identified=true - group='' - ;; - enable-auto-update) - action=enableau - arg_identified=true - group='' - ;; - # All cases below can use multiple words or chars to specify a single action. - activate|start) - action=activate - arg_identified=true - group='' - ;; - add|install) - action=install - arg_identified=true - group='' - ;; - deactivate|stop) - action=deactivate - arg_identified=true - group='' - ;; - reactivate|restart) - action=reactivate - arg_identified=true - group='' - ;; - rm|remove|uninstall) - action=uninstall - arg_identified=true - group='' - ;; - s|status|statuses) - action=status - arg_identified=true - group='' - ;; - update|upgrade) - action=upgrade - arg_identified=true - group='' - esac - - [[ $arg_identified = true ]] && skip_package_actions=false - - # Identify group in two stages: - - # Stage 1: when user didn't supply an action before group. - - # Stage 2: after an action has been defined. - - if [[ -n $action ]]; then - case $arg in - # These cases use only a single word or char to specify a single group. - backedup|installable|installed|missing) - group=${arg} - ;; - not-backedup) - group=NTbackedup - ;; - not-installed) - group=NTinstalled - ;; - # All cases below can use multiple words or chars to specify a single group. - active|started) - group=active - ;; - all|entire|everything) - group=all - ;; - deps|dependent|dependents) - group=dependent - ;; - disabled) - group=NTenabled - ;; - inactive|not-active|stopped) - group=NTactive - ;; - new|updatable|updateable|upgradable) - group=upgradable - ;; - non-installable|not-installable) - group=NTinstallable - ;; - independent|independents|indeps) - group=independent - esac - - [[ -n $group ]] && arg_identified=true - fi + case $arg in + # These cases use only a single word to specify a single action. + list) + new_action=$arg + group='' + requires_group=true + ;; + *) + new_action='' + esac - # Identify options. + if [[ -n $new_action && $new_action != "$action" ]]; then + [[ $awaiting_group = true ]] && args_incomplete+=("$action") + [[ $requires_group = false ]] && awaiting_group=false || awaiting_group=true + action=$new_action + group='' # When action changes, must clear group. + continue + fi - # Identify package. - package=$(QPKG.MatchAbbrv "$arg") + # Identify group. - [[ -n $package ]] && arg_identified=true + case $arg in + # These cases use only a single user-provided word to specify a single action. + backedup|installable|installed|missing|results) + group=${arg} + ;; + not-backedup) + group=NTbackedup + ;; + not-installed) + group=NTinstalled + ;; + # All cases below can use multiple user-provided words or chars to specify a single action. + a|abs|abbreviations) + # Don't set a default action for this group, this group is used for multiple actions. + group=abs + ;; + active|started) + group=active + ;; + all|entire|everything) + group=all + ;; + b|backups) + group=backups + ;; + deps|dependent|dependents) + group=dependent + ;; + disabled) + group=NTenabled + ;; + inactive|not-active|stopped) + group=NTactive + ;; + new|updatable|updateable|upgradable) + group=upgradable + ;; + non-installable|not-installable) + group=NTinstallable + ;; + independent|independents|indeps) + group=independent + ;; + version|versions) + group=versions + esac - [[ $arg_identified = false ]] && args_remaining+=("$arg") + # Pair action with group. + if [[ -n $action && -n $group ]]; then case $action in - activate|backup|clean|deactivate|disable|disableau|enable|enableau|install|reactivate|reassign|rebuild|reinstall|restore|sign|status|uninstall|upgrade) - [[ $action = status ]] && opts_show_status=true - + show) + awaiting_group=false + bypass_package_actions=true + bypass_package_states=true + generate_show_report=true + useropt_show_backups=true + ;; + list) case $group in - all|dependent|disabled|installable|independent|NTinstallable|upgradable) - QPKGs.AC${action}.SC${group}:Set - group='' + abs) + awaiting_group=false + bypass_package_actions=true + generate_help_report=true + useropt_help_abbreviations=true ;; - installed|NTinstalled|active|NTactive) - QPKGs.AC${action}.IS${group}:Set - group='' + backedup|installed|NTbackedup|NTinstalled) + Objects:Load + QPKGs.AClist.IS${group}:Set + awaiting_group=false + bypass_package_actions=true + generate_list_report=true + show_title=false + ;; + dependent|disabled|installable|independent|NTinstallable|upgradable) + Objects:Load + QPKGs.AClist.SC${group}:Set + awaiting_group=false + bypass_package_actions=true + generate_list_report=true + show_title=false + ;; + versions) + awaiting_group=false + generate_list_report=true + show_title=false + useropt_show_versions=true ;; *) - QPKGs-AC${action}-to:Add "$package" + args_remaining+=("$arg") esac + ;; + *) + args_remaining+=("$arg") esac - done - fi + else + args_remaining+=("$arg") + fi + done - if [[ $opts_show_status = true ]] && QPKGs-ACstatus-to.IsNone; then # If `status` is specified without a scope, then scope is `all`. - QPKGs.ACstatus.SCall:Set + if [[ $requires_group = true && $awaiting_group = true ]]; then # Only if the last action specified was not followed by a group. + args_incomplete+=("$action") fi args=(${args_remaining[@]:-}) @@ -2139,160 +2309,184 @@ ParseActionArgs() } -ParseShowArgs() +ParseActionArgs() { - # Basic argument syntax: - # scriptname [action] [groups] [options] - # input: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # output: - # $args (global) + # $args[] (global) + # $args_incomplete[] (global) # various global flags Func:Init - local -a args_remaining=() - local arg='' - local arg_identified=false local action='' - local action_force=false + local arg='' + local -a args_remaining=() + local awaiting_group=false local group='' - local package='' + local new_action='' + local requires_group=false - if [[ -n ${args[*]:-} ]]; then - for arg in "${args[@]:-}"; do - [[ -n $arg ]] || continue + [[ -n ${args[*]:-} ]] && Packages:Load - arg_identified=false + for arg in "${args[@]:-}"; do + [[ -n $arg ]] || continue - # Identify action: each time action changes, must clear group. + # Identify action. - case $arg in - show) - action=show - arg_identified=true - group='' - ;; -# s|status|statuses) -# action=status -# arg_identified=true -# group='' -# ;; - esac - - [[ $arg_identified = true ]] && skip_package_actions=false + case $arg in + # These cases use only a single user-provided word to specify a single action. + backup|clean|disable|enable|reassign|rebuild|reinstall|restore|sign) + new_action=$arg + requires_group=true + ;; + disable-auto-update) + new_action=disableau + requires_group=true + ;; + enable-auto-update) + new_action=enableau + requires_group=true + ;; + # All cases below can use multiple user-provided words or chars to specify a single action. + activate|start) + new_action=activate + requires_group=true + ;; + add|install) + new_action=install + requires_group=true + ;; + deactivate|stop) + new_action=deactivate + requires_group=true + ;; + reactivate|restart) + new_action=reactivate + requires_group=true + ;; + rm|remove|uninstall) + new_action=uninstall + requires_group=true + ;; + s|status|statuses) + new_action=status + requires_group=true + useropt_show_status=true + ;; + update|upgrade) + new_action=upgrade + requires_group=true + ;; + *) + new_action='' + esac - # Identify group in two stages: + if [[ -n $new_action && $new_action != "$action" ]]; then + [[ $awaiting_group = true ]] && args_incomplete+=("$action") + [[ $requires_group = false ]] && awaiting_group=false || awaiting_group=true + action=$new_action + group='' # When action changes, must clear group. + continue + fi - # Stage 1: when user didn't supply an action before group. + # Identify group. - # Stage 2: after an action has been defined. + case $arg in + # These cases use only a single user-provided word or char to specify a single group. + backedup|installable|installed|missing) + group=$arg + ;; + not-backedup) + group=NTbackedup + ;; + not-installed) + group=NTinstalled + ;; + # All cases below can use multiple user-provided words or chars to specify a single group. + active|started) + group=active + ;; + all|everything) + group=all + ;; + deps|dependent|dependents) + group=dependent + ;; + disabled) + group=NTenabled + ;; + inactive|not-active|stopped) + group=NTactive + ;; + new|updatable|updateable|upgradable) + group=upgradable + ;; + non-installable|not-installable) + group=NTinstallable + ;; + independent|independents|indeps) + group=independent + ;; + *) + group=$(QPKG.MatchAbbrv "$arg") + esac - if [[ -n $action ]]; then - case $arg in - # These cases use only a single word or char to specify a single group. - backedup|follow|installable|installed|missing|ok|problems|results|skipped|tail|tips) - group=${arg} - ;; - failed) - group=NTok - ;; - not-backedup) - group=NTbackedup - ;; - not-installed) - group=NTinstalled - ;; - # All cases below can use multiple words or chars to specify a single group. - a|abs|alias|aliases) - group=abs - ;; - actions-all|all-actions) - group=all-actions - ;; - action|actions) - group=actions - ;; - active|started) - group=active - ;; - all|entire|everything) - group=all - ;; - b|backups) - group=backups - ;; - d|dependencies) - group=dependencies - ;; - deps|dependent|dependents) - group=dependent - ;; - disabled) - group=NTenabled - ;; - group|groups) - group=groups - ;; - inactive|not-active|stopped) - group=NTactive - ;; - new|updatable|updateable|upgradable) - group=upgradable - ;; - non-installable|not-installable) - group=NTinstallable - ;; - o|option|options) - group=options - ;; - p|package|packages) - group=packages - ;; - r|repo|repos) - group=repos - ;; - independent|independents|indeps) - group=independent - ;; - version|versions) - group=versions - esac + # Pair action with group. - [[ -n $group ]] && arg_identified=true - fi + if [[ -n $action && -n $group ]]; then + case $group in + all|canbackup|canclean|canrestarttoupdate|dependent|hasdependents|independent|installable|upgradable|NTcanclean|NTinstallable|NTupgradable) + QPKGs.AC${action}.SC${group}:Set + awaiting_group=false + generate_action_report=true + ;; + active|backedup|enabled|installed|missing|NTactive|NTbackedup|NTenabled|NTinstalled) + QPKGs.AC${action}.IS${group}:Set + awaiting_group=false + generate_action_report=true + ;; + *) + QPKGs-AC${action}-to:Add "$group" + awaiting_group=false + generate_action_report=true + esac + else + args_remaining+=("$arg") + fi + done - # Identify options. + if [[ $requires_group = true && $awaiting_group = true ]]; then # Only if the last action specified was not followed by a group. + args_incomplete+=("$action") + fi - # Identify package. - package=$(QPKG.MatchAbbrv "$arg") + for arg in "${args_incomplete[@]:-}"; do + case $arg in + status) # If `status` is specified without a valid group, then group is `all`. + QPKGs.ACstatus.SCall:Set + generate_show_report=true - [[ -n $package ]] && arg_identified=true + # Remove this arg from incomplete array. + local a='' + local tmp=() - [[ $arg_identified = false ]] && args_remaining+=("$arg") + for a in "${args_incomplete[@]}"; do + [[ $a != "$arg" ]] && tmp+=($a) + done - case $action in - status) - opts_show_status=true + if [[ ${#tmp[@]:-} -eq 0 ]]; then + args_incomplete=() + else + args_incomplete=("${tmp[@]}") + fi - case $group in - all|dependent|independent|upgradable) - QPKGs.AC${action}.SC${group}:Set - group='' - ;; - installed) - QPKGs.AC${action}.IS${group}:Set - group='' - ;; - *) - QPKGs-AC${action}-to:Add "$package" - esac - esac - done - fi + unset tmp + esac + done args=(${args_remaining[@]:-}) @@ -2303,84 +2497,142 @@ ParseShowArgs() ArgSuggestions:Show() { + # input: + # $args[] (global) + # $args_incomplete[] (global) + + # output: + # various global flags + Func:Init local arg='' + local -a args_remaining=() - if [[ ${#args_incomplete[@]} -gt 0 ]]; then - WriteEmptyLineIfNoneExists - ShowAsError "incomplete argument$(Pluralise "${#args_incomplete[@]}"): \"${args_incomplete[*]}\"" - check_tasks=false - skip_package_actions=true + if [[ ${#args_incomplete[@]:-} -gt 0 ]]; then + bypass_package_actions=true for arg in "${args_incomplete[@]}"; do case $arg in + activate|backup|uninstall) + DisplayAsProjSynExam "please provide valid $(ShowPackages) or a $(ShowPackageGroup) after '$arg' like" "$arg installed" + arg_problem=true + useropt_help_basic=false + ;; + colour) + DisplayAsProjSynExam "please provide a valid boolean after 'colour' like" 'colour true' + DisplayAsProjSynIndentExam '' 'colour false' + arg_problem=true + useropt_help_basic=false + ;; follow) - DisplayAsProjSynExam "please provide a valid source branch to track after 'follow' like" 'follow stable' + DisplayAsProjSynExam "please provide a valid source branch to 'follow' like" 'follow stable' DisplayAsProjSynIndentExam '' 'follow unstable' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; list) - DisplayAsProjSynExam "please provide a valid source to show after 'list' like" 'list installable' - opts_show_basic_help=false + DisplayAsProjSynExam "please provide a valid source to 'list' like" 'list installable' + arg_problem=true + useropt_help_basic=false ;; paste) - DisplayAsProjSynExam "please provide a valid source to paste online after 'paste' like" 'paste log' + DisplayAsProjSynExam "please provide a valid source to 'paste' online like" 'paste log' DisplayAsProjSynIndentExam '' 'paste last' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false + ;; + show) + DisplayAsProjSynExam "please provide a valid source after 'show' like" 'show packages' + arg_problem=true + useropt_help_basic=false + ;; + *) + arg_problem=true + args_remaining+=("$arg") esac done + + if [[ ${#args_remaining[@]:-} -gt 0 ]]; then + WriteEmptyLineIfNoneExists + ShowAsError "incomplete argument$(Pluralise "${#args_remaining[@]}"): \"${args_remaining[*]}\". Please check the arguments again" + arg_problem=true + args_remaining=() + fi fi - if [[ ${#args[@]} -gt 0 ]]; then - WriteEmptyLineIfNoneExists - ShowAsError "unknown argument$(Pluralise "${#args[@]}"): \"${args[*]}\". Please check the arguments again" - check_tasks=false - skip_package_actions=true + if [[ ${#args[@]:-} -gt 0 ]]; then + bypass_package_actions=true for arg in "${args[@]}"; do case $arg in + false|off|on|true) + DisplayAsProjSynExam "please provide a valid setting before '$arg' like" "colour $arg" + arg_problem=true + useropt_help_basic=false + ;; all) DisplayAsProjSynExam "please provide a valid $(ShowAction) before 'all' like" 'activate all' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; all-backup|backup-all) DisplayAsProjSynExam 'to backup all installed package configurations, use' 'backup all' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; dependent) DisplayAsProjSynExam "please provide a valid $(ShowAction) before 'dependent' like" 'activate dependents' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; all-reactivate|reactivate-all) DisplayAsProjSynExam 'to reactivate all packages, use' 'reactivate all' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; all-restore|restore-all) DisplayAsProjSynExam 'to restore all installed package configurations, use' 'restore all' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; independent) DisplayAsProjSynExam "please provide a valid $(ShowAction) before 'independent' like" 'activate independents' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; all-activate|activate-all) DisplayAsProjSynExam 'to activate all packages, use' 'activate all' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; all-stop|stop-all) DisplayAsProjSynExam 'to stop all packages, use' 'stop all' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; all-uninstall|all-remove|uninstall-all|remove-all) DisplayAsProjSynExam 'to uninstall all packages, use' 'force uninstall all' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false ;; all-upgrade|upgrade-all) DisplayAsProjSynExam 'to upgrade all packages, use' 'upgrade all' - opts_show_basic_help=false + arg_problem=true + useropt_help_basic=false + ;; + *) + arg_problem=true + args_remaining+=("$arg") esac done + + if [[ ${#args_remaining[@]:-} -gt 0 ]]; then + WriteEmptyLineIfNoneExists + ShowAsError "unknown argument$(Pluralise "${#args_remaining[@]}"): \"${args_remaining[*]}\". Please check the arguments again" + arg_problem=true + useropt_help_basic=false + fi fi Func:Exit @@ -2391,10 +2643,11 @@ AllocPackGroupsToAcs() { Func:Init + ShowAsProc 'matching QPKG groups to actions' + local action='' local group='' - local state='' local prospect='' local found=false # Group has been found. @@ -2523,10 +2776,11 @@ AllocPackStatesToAcs() { Func:Init + ShowAsProc 'matching QPKG states to actions' + local action='' local state='' - local prospect='' local found=false # State has been found. for action in "${USER_QPKG_ACTIONS[@]}"; do @@ -2632,7 +2886,7 @@ ResetReportsPath() { if [[ -n $REPORTS_PATH && -d $REPORTS_PATH ]]; then - ClearPath "$THIS_PACKAGE_PATH" "$REPORTS_PATH" + ClearPath /var/log/sherpa "$REPORTS_PATH" ShowAsDone 'reports cleared' fi @@ -2649,7 +2903,7 @@ Quiz() # output: # $? = 0 if "y", 1 if anything else - local prompt=${1:?${FUNCNAME[0]}'()': undefined} + local prompt=${1:?${FUNCNAME[0]}'()': undefined prompt} local response='' ShowAsQuiz "$prompt" @@ -2713,7 +2967,7 @@ UpdateEntwarePackageList() # If Entware package list was recently updated, don't update again. - if ! IsThisFileRecent "$EXTERNAL_PACKAGES_ARCHIVE_PATHFILE" "$FILE_CHANGE_THRESHOLD_MINUTES" || [[ ! -f $EXTERNAL_PACKAGES_ARCHIVE_PATHFILE || $opts_check = true ]]; then + if ! IsThisFileRecent "$EXTERNAL_PACKAGES_ARCHIVE_PATHFILE" "$FILE_CHANGE_THRESHOLD_MINUTES" || [[ ! -f $EXTERNAL_PACKAGES_ARCHIVE_PATHFILE || $useropt_check = true ]]; then DebugAsProc "updating $(ShowAsPackageName Entware) package list" RunAndLog "$OPKG_CMD update" "$LOGS_PATH/Entware.$UPDATE_LOG_FILE" log:failure-only @@ -2768,13 +3022,13 @@ SaveEntwarePackageList() LoadEntwarePackageList() { - local packname='' - local sep='' + local name='' + local separator='' local version='' if [[ -e $PREV_IPK_LIST ]]; then - while read -r packname sep version; do - IPKs-ACinstall-to:Add "$packname" + while read -r name separator version; do + IPKs-ACinstall-to:Add "$name" done < "$PREV_IPK_LIST" fi @@ -2807,6 +3061,7 @@ CalcIpkDepsToInstall() if [[ $requested_count -eq 0 ]]; then DebugAsWarn 'no IPKs requested' + Func:Exit 1; return fi @@ -2848,6 +3103,7 @@ CalcIpkDepsToInstall() if [[ $pre_exclude_count -gt 0 ]]; then ShowAsProc 'excluding IPKs already installed' + DebugInfo "$pre_exclude_count IPK$(Pluralise "$pre_exclude_count") required (including dependencies)" "'$pre_exclude_list' " for element in $pre_exclude_list; do @@ -2887,6 +3143,7 @@ CalcIpkDownloadSize() if [[ $size_count -gt 0 ]]; then ShowAsProc "calculating size of IPK$(Pluralise "$size_count") to download" + DebugAsDone "$size_count IPK$(Pluralise "$size_count") to download: '$(IPKs-ACdownload-to:List)'" size_array=($($GNU_GREP_CMD -w '^Package:\|^Size:' "$EXTERNAL_PACKAGES_PATHFILE" | $GNU_GREP_CMD --after-context 1 --no-group-separator ": $($SED_CMD 's/ /$ /g;s/\$ /\$\\\|: /g' <<< "$(IPKs-ACdownload-to:List)")" | $GREP_CMD '^Size:' | $SED_CMD 's|^Size: ||')) @@ -2913,8 +3170,8 @@ IPKs:upgrade() Func:Init local desc='' local log_pathfile=$LOGS_PATH/ipks.$UPGRADE_LOG_FILE - local -i z=0 local -i total_count=0 + local -i z=0 IPKs-ACupgrade-to:Init IPKs-ACdownload-to:Init @@ -2931,6 +3188,7 @@ IPKs:upgrade() if [[ $total_count -gt 0 ]]; then desc="$total_count auxiliary IPK module$(Pluralise "$total_count")" + ShowAsProc "upgrading $desc" _DirSizeMonitor_ "$IPK_DL_PATH" "$(IPKs-ACdownload-to:Size)" & @@ -2968,13 +3226,13 @@ IPKs:install() local desc='' local -i i=0 local log_pathfile=$LOGS_PATH/ipks.$INSTALL_LOG_FILE - local -i z=0 - local -i total_count=0 local previous='' + local -i total_count=0 + local -i z=0 IPKs-ACinstall-to:Init IPKs-ACdownload-to:Init - if QPKGs-ACinstall-ok.Exist Entware || ([[ $opts_check = true ]] && QPKG.IsInstalled Entware); then + if QPKGs-ACinstall-ok.Exist Entware || ([[ $useropt_check = true ]] && QPKG.IsInstalled Entware); then IPKs-ACinstall-to:Add "$ESSENTIAL_IPKS" if [[ -e $PREV_IPK_LIST ]]; then @@ -3006,6 +3264,7 @@ IPKs:install() if [[ $total_count -gt 0 ]]; then desc="$total_count auxiliary IPK module$(Pluralise "$total_count")" + ShowAsProc "installing $desc" _DirSizeMonitor_ "$IPK_DL_PATH" "$(IPKs-ACdownload-to:Size)" & @@ -3053,14 +3312,14 @@ IPKs:downgrade() local desc='' local -i fail_count=0 local log_pathfile='' - local -i ok_count=0 local name='' + local -i ok_count=0 local package_type='' local remote_url='' - local -i z=0 local -i total_count=0 local url_prefix='' local url_suffix='' + local -i z=0 IPKs-ACdownload-to:Init total_count=$(IPKs-ACdowngrade-to:Count) @@ -3068,6 +3327,7 @@ IPKs:downgrade() package_type='auxiliary IPK module' desc="$total_count ${package_type}$(Pluralise "$total_count")" log_pathfile=$LOGS_PATH/ipks.$DOWNLOAD_LOG_FILE + ShowAsProc "downloading $desc" if OS.IsNonStdKernelPageSize; then @@ -3106,7 +3366,9 @@ IPKs:downgrade() package_type='auxiliary IPK group' desc="$total_count ${package_type}$(Pluralise "$total_count")" log_pathfile=$LOGS_PATH/ipks.$DOWNGRADE_LOG_FILE + ShowAsProc "downgrading $desc" + ShowAsPercentProgress "downgrading $total_count ${package_type}$(Pluralise "$total_count")" '' "$ok_count" 0 "$fail_count" "$total_count" RunAndLog "$OPKG_CMD install --force-downgrade --cache $IPK_CACHE_PATH --tmp-dir $IPK_DOWNGRADE_DL_PATH $IPK_DOWNGRADE_DL_PATH/*.ipk" "$log_pathfile" log:failure-only z=$? @@ -3144,10 +3406,10 @@ PIPs:install() local log_pathfile=$LOGS_PATH/pypi.$INSTALL_LOG_FILE local -i ok_count=0 local package_type='auxiliary PyPI group' - local -i z=0 local -i total_count=0 + local -i z=0 - if [[ $opts_check = true ]] || IPKs-ACinstall-ok.Exist python3-pip; then + if [[ $useropt_check = true ]] || IPKs-ACinstall-ok.Exist python3-pip; then ((total_count++)) exec_cmd="$PIP_CMD install --upgrade --no-input $ESSENTIAL_PIPS --cache-dir $PIP_CACHE_PATH 2> >($GREP_CMD -v \"Running pip as the 'root' user\") >&2" @@ -3263,8 +3525,8 @@ _DirSizeMonitor_() # output: # stdout = "percentage downloaded (downloaded bytes/total expected bytes)". - [[ -n ${1:?${FUNCNAME[0]}'()': undefined} ]] || exit - [[ -n ${2:?${FUNCNAME[0]}'()': undefined} ]] || exit + [[ -n ${1:?${FUNCNAME[0]}'()': undefined path} ]] || exit + [[ -n ${2:?${FUNCNAME[0]}'()': undefined total bytes} ]] || exit [[ -d $1 && $2 -gt 0 ]] || exit IsSysFileExist $GNU_FIND_CMD || exit @@ -3356,56 +3618,152 @@ WriteMsgInPlace() printf "%${#prev_clean_msg}s" | tr ' ' '\b'; echo -en "$squeezed_msg" fi - prev_clean_msg=$clean_msg + prev_clean_msg=$clean_msg + fi + + } + +KillActiveFork() + { + + if [[ -n ${fork_pid:-} && ${fork_pid:-0} -gt 0 && -d /proc/$fork_pid ]]; then + sleep .2 + set +m # disable job control + kill -9 "$fork_pid" + set -m # re-enable job control + wait + fi + + } &>/dev/null + +Reset() + { + + ResetCachePath + ResetReportsPath + ResetArchivedLogs + ArchiveActiveSessLog + ResetActiveSessLog + exit 0 + + } + +SwitchSourceBranch() + { + + local a='' + + if [[ $useropt_switch_branch = true && -n $user_switch_branch ]]; then + # Validate $user_switch_branch before writing. + + for a in unstable stable; do + [[ $a != "$user_switch_branch" ]] && continue + + AssignSourceBranch "$user_switch_branch" + ShowAsDone "'Git_Branch = $source_branch' has been written as a persistent setting" + Reset # <-- Processing will terminate in this function (no-return). The following lines are only used for debugging. + # shellcheck disable=2317 + show_title=false + # shellcheck disable=2317 + return + done + + ShowAsAbort "'$user_switch_branch' is not a valid branch" + bypass_package_actions=true + return 1 + fi + + return + + } + +AssignSourceBranch() + { + + # Set current branch to follow. Default is loaded from `qpkg.conf`, then $1 is used if-supplied. + + # input: + # $1 = new branch to follow (optional) = `stable`, `unstable` + + # output: + # $source_branch (global) = `stable`, `unstable` + + local a=stable # Stored setting. + local b=stable # Supplied setting. + + a=$(Lowercase "$(/sbin/getcfg sherpa Git_Branch -d stable -f /etc/config/qpkg.conf)") + + if [[ -n ${1:-} ]]; then + for b in unstable stable; do + [[ $b = "$1" ]] && break + done + + source_branch=$b + else + source_branch=$a fi + /sbin/setcfg sherpa Git_Branch "$source_branch" -f /etc/config/qpkg.conf + + return 0 + } -KillActiveFork() +SwitchColourful() { - if [[ -n ${fork_pid:-} && ${fork_pid:-0} -gt 0 && -d /proc/$fork_pid ]]; then - sleep .2 - set +m # disable job control - kill -9 "$fork_pid" - set -m # re-enable job control - wait - fi + local a='' - } &>/dev/null + if [[ $useropt_switch_colour = true && -n $user_switch_colourful ]]; then + # Validate $user_switch_colourful before writing. -Reset() - { + for a in true false; do + [[ $a != "$user_switch_colourful" ]] && continue - ResetCachePath - ResetReportsPath - ResetArchivedLogs - ArchiveActiveSessLog - ResetActiveSessLog - exit 0 + AssignColourful "$user_switch_colourful" + ShowAsDone "'Colourful = $colourful' has been written as a persistent setting" + show_title=false + return + done + + ShowAsAbort "'$user_switch_colourful' is not 'true' or 'false'" + bypass_package_actions=true + return 1 + fi + + return } -SwitchSourceBranch() +AssignColourful() { - if [[ $opts_switch_follow_branch = true && -n $source_branch ]]; then - # Validate $source_branch before writing. + # Set current colourful status. Default is loaded from `qpkg.conf`, then $1 is used if-supplied. + + # input: + # $1 = new state to apply (optional) = `true`, `false` + + # output: + # $colourful (global) = `true`, `false` + + local a=false # Stored setting. + local b=false # Supplied setting. - for branch in stable unstable; do - [[ $branch != "$source_branch" ]] && continue + a=$(Lowercase "$(/sbin/getcfg sherpa Colourful -d false -f /etc/config/qpkg.conf)") - /sbin/setcfg sherpa Git_Branch "$source_branch" -f /etc/config/qpkg.conf - ShowAsDone "now following the '$source_branch' branch" - Reset + if [[ -n ${1:-} ]]; then + for b in true false; do + [[ $b = "$1" ]] && break done - ShowAsAbort "'$source_branch' is not a valid branch to follow" - skip_package_actions=true - return 1 + colourful=$b + else + colourful=$a fi - return + /sbin/setcfg sherpa Colourful "$(Uppercase "$colourful")" -f /etc/config/qpkg.conf + + return 0 } @@ -3442,7 +3800,7 @@ DebugBinPathVerAndMinVer() # $2 = current version found # $3 = minimum version required - [[ -n ${1:?${FUNCNAME[0]}'()': undefined} ]] || return + [[ -n ${1:?${FUNCNAME[0]}'()': undefined filename} ]] || return local a=$(GetThisBinPath "$1") @@ -3453,7 +3811,7 @@ DebugBinPathVerAndMinVer() fi if [[ -n ${2:-} ]]; then - [[ -n ${3:?${FUNCNAME[0]}'()': undefined} ]] || return + [[ -n ${3:?${FUNCNAME[0]}'()': undefined version} ]] || return if [[ ${2//./} -ge ${3//./} ]]; then DebugUserspace ok "'$1' version" "$2" @@ -3477,7 +3835,7 @@ IsSysFileExist() # output: # $? = 0 (exists) or 1 (not exists) - [[ -n ${1:?${FUNCNAME[0]}'()': undefined} ]] || exit + [[ -n ${1:?${FUNCNAME[0]}'()': undefined pathfile} ]] || exit a=${1%% *} # Extract first word-group. @@ -3499,7 +3857,7 @@ IsNtSysFileExist() # output: # $? = 0 (not exists) or 1 (exists) - ! IsSysFileExist "${1:?${FUNCNAME[0]}'()': undefined}" + ! IsSysFileExist "${1:?${FUNCNAME[0]}'()': undefined pathfile}" } @@ -3638,7 +3996,6 @@ DisplayAsPackagesReportTitleLine() { local a='' - WriteEmptyLineIfNoneExists # column 1: package name @@ -3671,7 +4028,7 @@ DisplayAsPackagesReportLine() # input: # $1 = package name - local name=${1:?${FUNCNAME[0]}'()': undefined} + local name=${1:?${FUNCNAME[0]}'()': undefined packagename} local name_msg=$CHARS_NORMAL # local author=$(QPKG.GetAuthor "$name") # local author_msg=$CHARS_BLANK @@ -3738,7 +4095,6 @@ DisplayAsStatusReportTitleLine() { local a='' - WriteEmptyLineIfNoneExists # column 1: package name @@ -3787,7 +4143,7 @@ DisplayAsStatusReportLine() # input: # $1 = package name - local name=${1:?${FUNCNAME[0]}'()': undefined} + local name=${1:?${FUNCNAME[0]}'()': undefined packagename} local name_msg=$CHARS_BLANK local status='' local status_msg='' @@ -3922,7 +4278,6 @@ DisplayAsReposReportTitleLine() { local a='' - WriteEmptyLineIfNoneExists # column 1: package name @@ -3955,7 +4310,7 @@ DisplayAsReposReportLine() # input: # $1 = package name - local name=${1:?${FUNCNAME[0]}'()': undefined} + local name=${1:?${FUNCNAME[0]}'()': undefined packagename} local name_msg=$CHARS_BLANK local install_date=$(QPKG.GetInstallDate "$name") local install_date_msg=$CHARS_BLANK @@ -4042,7 +4397,6 @@ DisplayAsAbsReportTitleLine() { local a='' - WriteEmptyLineIfNoneExists # column 1: package name @@ -4068,7 +4422,7 @@ DisplayAsAbsReportLine() # input: # $1 = package name - local name=${1:?${FUNCNAME[0]}'()': undefined} + local name=${1:?${FUNCNAME[0]}'()': undefined packagename} local name_msg=$CHARS_BLANK local abs='' local abs_msg=$CHARS_NORMAL @@ -4134,7 +4488,6 @@ DisplayAsDepsReportTitleLine() { local a='' - WriteEmptyLineIfNoneExists # column 1: package name @@ -4202,7 +4555,7 @@ DisplayAsDepsReportLine() # input: # $1 = package name - local name=${1:?${FUNCNAME[0]}'()': undefined} + local name=${1:?${FUNCNAME[0]}'()': undefined packagename} local name_msg=$CHARS_BLANK local package_deps_raw=$(QPKG.GetDependencies "$name") [[ -z $package_deps_raw ]] && package_deps_raw=none @@ -4471,9 +4824,7 @@ DisplayAsHelpTitleFileNamePlusSomething() # $1 = file name title # $2 = second column title - WriteEmptyLineIfNoneExists printf "${CHARS_BULLET}%-${FILE_NAME_COL_WIDTH}s ${CHARS_BULLET}%s\n" "$(Capitalise "${1:-}"):" "$(Capitalise "${2:-}"):" - linespace_visible=false } @@ -4483,9 +4834,7 @@ DisplayAsHelpTitle() # input: # $1 = text - WriteEmptyLineIfNoneExists - printf "${CHARS_BULLET}%s\n" "$(Capitalise "${1:-}" | tr -s ' ')" - linespace_visible=false + printf "\n${CHARS_BULLET}%s\n" "$(Capitalise "${1:-}" | tr -s ' ')" } @@ -4495,10 +4844,8 @@ DisplayAsHelpTitleHighlighted() # input: # $1 = text - WriteEmptyLineIfNoneExists # shellcheck disable=2059 printf "$(TextBrightOrange "${CHARS_BULLET}%s\n")" "$(Capitalise "${1:-}")" - linespace_visible=false } @@ -4533,8 +4880,10 @@ DisplayAsIndentActionResultDurationReason() if [[ -z ${4:-} ]]; then printf "%s %s%s" "$(Lowercase "$action")" "$2" "$([[ -n $duration ]] && printf ' in %s' "$duration")." - else + elif [[ ${4: -1} = "😉" ]]; then printf "%s %s%s: %s" "$(Lowercase "$action")" "$2" "$([[ -n $duration ]] && printf ' in %s' "$duration")" "$4" + else + printf "%s %s%s: %s" "$(Lowercase "$action")" "$2" "$([[ -n $duration ]] && printf ' in %s' "$duration")" "$4." fi printf '\n'; linespace_visible=false @@ -4544,18 +4893,20 @@ DisplayAsIndentActionResultDurationReason() EraseThisLine() { - # Reset cursor to start-of-line, erasing entire line. + # Reset cursor to start-of-line, erasing entire line, and stay on this line. - [[ ${opts_verbose:=false} = false ]] && printf '\033[2K\r' - linespace_visible=true + [[ ${useropt_verbose:=false} = false ]] && printf '\033[2K\r' } >&2 Display() { - printf '%s\n' "${1:-}" - linespace_visible=false + if [[ -z ${1:-} ]]; then + printf '\n' + else + printf '%s\n' "$1"; linespace_visible=false + fi } @@ -4566,11 +4917,11 @@ DisplayWait() } -Report.Actions:Show() +Help.Actions:Show() { DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport actions { @@ -4631,11 +4982,11 @@ Report.Actions:Show() } -Report.ActionsAll:Show() +Help.ActionsAll:Show() { DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport 'all actions' { @@ -4700,7 +5051,7 @@ Help.Basic.Examples:Show() { DisplayAsProjSynIndentExam "to see available $(ShowAction)s" 'help actions' - DisplayAsProjSynIndentExam "to see available $(ShowPackages)" 'help packages' + DisplayAsProjSynIndentExam "to see available $(ShowPackages)" 'show packages' DisplayAsProjSynIndentExam '' p DisplayAsProjSynIndentExam "to see available $(ShowPackageGroup)s" 'help groups' DisplayAsProjSynIndentExam "or, for more $(ShowOptions)" 'help options' @@ -4710,11 +5061,11 @@ Help.Basic.Examples:Show() } -Report.Groups:Show() +Help.Groups:Show() { DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport groups { @@ -4766,11 +5117,11 @@ Help.Issue:Show() } -Report.Lists:Show() +Help.Lists:Show() { DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport lists { @@ -4821,8 +5172,6 @@ Report.Results:Show() local singular='this action' local plural='these actions' - DisplayWritingReport - { if [[ -e $SESS_ACTIONS_RESULTS_PATHFILE ]]; then @@ -4865,31 +5214,26 @@ Report.Results:Show() esac fi - Display - } > "$REPORT_OUTPUT_PATHFILE" - EraseThisLine - [[ -e $REPORT_OUTPUT_PATHFILE ]] && $CAT_CMD "$REPORT_OUTPUT_PATHFILE" + if [[ -e $REPORT_OUTPUT_PATHFILE ]]; then + $CAT_CMD "$REPORT_OUTPUT_PATHFILE" + fi return 0 } -Report.Options:Show() +Help.Options:Show() { DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport options { Help.Basic:Show DisplayAsHelpTitle "$(ShowOptions) usage examples:" - DisplayAsProjSynIndentExam 'show package statuses' status - DisplayAsProjSynIndentExam '' s - DisplayAsProjSynIndentExam 'show package repositories' repos - DisplayAsProjSynIndentExam '' r DisplayAsProjSynIndentExam 'show live debugging information, and record it to file' "$(ShowAction) $(ShowPackages) verbose" DisplayAsProjSynIndentExam '' v DisplayAsProjSynIndentExam 'record debugging information to file-only' "$(ShowAction) $(ShowPackages) debug" @@ -4909,17 +5253,43 @@ Report.Options:Show() } -Report.Problems:Show() +Help.Packages:Show() + { + + DisableDebugToArchiveAndFile + DisplayProcReport packages + + { + + Help.Basic:Show + DisplayAsHelpTitle 'usage examples for packages:' + Display + + } > "$REPORT_OUTPUT_PATHFILE" + + EraseThisLine + + if [[ -e $REPORT_OUTPUT_PATHFILE ]]; then + DisplayFileInViewport "$REPORT_OUTPUT_PATHFILE" + else + ShowAsError 'no information to display' + fi + + return 0 + + } + +Help.Problems:Show() { DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport problems { Help.Basic:Show DisplayAsHelpTitle 'usage examples for dealing with problems:' - DisplayAsProjSynIndentExam 'show package statuses' status + DisplayAsProjSynIndentExam 'show package statuses' 'show status' DisplayAsProjSynIndentExam '' s DisplayAsProjSynIndentExam 'show live debugging information, and record it to file' "$(ShowAction) $(ShowPackages) verbose" DisplayAsProjSynIndentExam '' v @@ -4931,6 +5301,7 @@ Report.Problems:Show() DisplayAsProjSynIndentExam 'reactivate all installed packages (upgrades internal applications where-supported)' 'reactivate all' DisplayAsProjSynIndentExam 'enable then activate these packages' "activate $(ShowPackages)" DisplayAsProjSynIndentExam 'stop then disable these packages (disabling will prevent them starting on reboot)' "stop $(ShowPackages)" + DisplayAsProjSynIndentExam "increase the default 'qpkg_service' timeouts from 3 minutes to 30 minutes" 'install increasetimeouts' DisplayAsProjSynIndentExam "view only the most recent $(ShowTitleName) session log" last DisplayAsProjSynIndentExam '' l DisplayAsProjSynIndentExam "view the entire $(ShowTitleName) session log" log @@ -4953,11 +5324,43 @@ Report.Problems:Show() } -Report.Tips:Show() +Help.Upgrades:Show() + { + + DisableDebugToArchiveAndFile + DisplayProcReport upgrades + + { + + Help.Basic:Show + DisplayAsHelpTitle 'usage examples for upgrading your packages:' + DisplayAsProjSynIndentExam 'upgrade only the upgradable packages' 'upgrade upgradable' + DisplayAsProjSynIndentExam '' 'upgrade new' + DisplayAsProjSynIndentExam 'show a list of upgradable packages' 'list upgradable' + DisplayAsProjSynIndentExam '' 'list new' + DisplayAsProjSynIndentExam 'show package statuses' 'show status' + DisplayAsProjSynIndentExam '' s + Display + + } > "$REPORT_OUTPUT_PATHFILE" + + EraseThisLine + + if [[ -e $REPORT_OUTPUT_PATHFILE ]]; then + DisplayFileInViewport "$REPORT_OUTPUT_PATHFILE" + else + ShowAsError 'no information to display' + fi + + return 0 + + } + +Help.Tips:Show() { DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport tips { @@ -5063,7 +5466,7 @@ DisplayFileInViewport() wraplines=true esac - if [[ $opts_verbose = true ]]; then + if [[ $useropt_verbose = true ]]; then if [[ -e $CAT_CMD ]]; then $CAT_CMD "$filename" return @@ -5080,6 +5483,7 @@ DisplayFileInViewport() [[ $showlinenumbers = true ]] && options+=' --LINE-NUMBERS' [[ $jumptoend = true ]] && options+=' +G' LESSSECURE=1 ${GNU_LESS_CMD}${options} --prompt "$prompt" "$filename" + linespace_visible=false return fi @@ -5088,6 +5492,7 @@ DisplayFileInViewport() [[ $wraplines = false ]] && options+='S' [[ $showlinenumbers = true ]] && options+='N' ${LESS_CMD}${options} "$filename" + linespace_visible=false return fi fi @@ -5095,15 +5500,18 @@ DisplayFileInViewport() if [[ -e $CAT_CMD ]]; then [[ $showlinenumbers = true ]] && options+=' --number' ${CAT_CMD}${options} "$filename" + linespace_visible=false return elif [[ -e $MORE_CMD ]]; then $MORE_CMD "$filename" + linespace_visible=false return fi # and, when there's no-better-option ... echo "$(<$1)" + linespace_visible=false } @@ -5117,6 +5525,7 @@ Log.Last:Paste() if [[ -e $SESS_LAST_PATHFILE ]]; then if Quiz "Press 'Y' to post the most-recent session in your $(ShowTitleName) log to a public pastebin, or any other key to abort"; then ShowAsProc "uploading $(ShowTitleName) log" + # with thanks to https://github.com/solusipse/fiche link=$($CAT_CMD --number "$SESS_LAST_PATHFILE" | (exec 3<>/dev/tcp/termbin.com/9999; $CAT_CMD >&3; $CAT_CMD <&3; exec 3<&-)) @@ -5149,6 +5558,7 @@ Log.Tail:Paste() if [[ -e $SESS_TAIL_PATHFILE ]]; then if Quiz "Press 'Y' to post the most-recent $(FormatAsThous "$LOG_TAIL_LINES") lines in your $(ShowTitleName) log to a public pastebin, or any other key to abort"; then ShowAsProc "uploading $(ShowTitleName) log" + # with thanks to https://github.com/solusipse/fiche link=$($CAT_CMD --number "$SESS_TAIL_PATHFILE" | (exec 3<>/dev/tcp/termbin.com/9999; $CAT_CMD >&3; $CAT_CMD <&3; exec 3<&-)) @@ -5291,7 +5701,8 @@ InitForkCounts() # Create directories so background processes can be monitored. - proc_counts_path=$($MKTEMP_CMD -d /var/run/"${FUNCNAME[1]}"_XXXXXX) + MakePath "$ACTION_FORKS_COUNT" 'action forks' + proc_counts_path=$($MKTEMP_CMD -d "$ACTION_FORKS_COUNT"/"${FUNCNAME[1]}"_XXXXXX) [[ -n ${proc_counts_path:?undefined proc counts path} ]] || return EraseForkCountPaths @@ -5348,7 +5759,7 @@ RefreshForkCounts() EraseForkCountPaths() { - [[ -n $proc_counts_path && -d $proc_counts_path ]] && ClearPath /var/run "$proc_counts_path" + ClearPath /var/run/sherpa/actions/forks "$proc_counts_path" [[ -e $ACTION_ABORT_PATHFILE ]] && rm -f "$ACTION_ABORT_PATHFILE" } &>/dev/null @@ -5372,7 +5783,7 @@ UpdateForkProgress() local b='' RefreshForkCounts - [[ $opts_verbose = false && ! -e $DISPLAY_INHIBIT_PATHFILE ]] || return # Don't display progress, it's difficult to read with so-many other writes to the screen. + [[ $useropt_verbose = false && ! -e $DISPLAY_INHIBIT_PATHFILE ]] || return # Don't display progress, it's difficult to read with so-many other writes to the screen. a=$((skip_count+skip_ok_count+skip_error_count+skip_abort_count)) b=$(PercFrac "$ok_count" "$a" "$fail_count" "$total_count") @@ -5412,14 +5823,12 @@ QPKGs.Missing:Show() # $? = 0 if no packages are missing # $? = 1 if one-or-more packages are missing - local -a packages=() - local -i i=0 local a='' - local premsg='' - local sufmsg='' + local b='' + local c='' + local -i i=0 local name_limit=2 - - [[ $title_shown = false ]] || return + local -a packages=() if [[ $(QPKGs-ISmissing:Count) -eq 0 ]]; then return 0 @@ -5442,14 +5851,15 @@ QPKGs.Missing:Show() done if [[ ${#packages[@]} -eq 1 ]]; then - premsg=' is' - sufmsg='it' + b=' is' + c='it' else - premsg='s are' - sufmsg='them' + b='s are' + c='them' fi - ShowAsNote "$a QPKG${premsg} missing or broken. Please reinstall $sufmsg" + ShowAsNote "the $a QPKG${b} missing or broken. Please reinstall $c" + return 1 } @@ -5463,12 +5873,12 @@ QPKGs.NewVers:Show() # $? = 0 if all packages are up-to-date # $? = 1 if one-or-more packages can be upgraded - local -a packages=() - local -i i=0 local a='' + local b='' + local c='' + local -i i=0 local name_limit=2 - - [[ $title_shown = false ]] || return + local -a packages=() if [[ $(QPKGs-SCupgradable:Count) -eq 0 ]]; then return 0 @@ -5490,7 +5900,15 @@ QPKGs.NewVers:Show() fi done - ShowAsNote "new QPKG version$(Pluralise "${#packages[@]}") available for $a" + if [[ ${#packages[@]} -eq 1 ]]; then + b='a ' + c='version is' + else + c="version$(Pluralise "${#packages[@]}") are" + fi + + ShowAsNote "${b}new QPKG $c available for $a" + return 1 } @@ -5498,7 +5916,7 @@ QPKGs.NewVers:Show() QPKGs.Conflicts:Check() { - [[ $skip_package_actions = true ]] || return 0 + [[ $bypass_package_actions = true ]] || return 0 local a='' @@ -5507,7 +5925,7 @@ QPKGs.Conflicts:Check() for a in "${BASE_QPKG_CONFLICTS_WITH[@]}"; do if QPKG.IsEnabled "$a"; then ShowAsError "the '$a' QPKG is enabled. $(ShowTitleName) is incompatible with this package. Please consider stopping this QPKG in your App Center" - skip_package_actions=true + bypass_package_actions=true return 1 fi done @@ -5539,9 +5957,10 @@ QPKGs.Warnings:Check() PIPs.Actions:List() { - [[ $opts_debug = true ]] || return + [[ $useropt_debug = true ]] || return Func:Init + local a='' DebugInfoMinSepr @@ -5551,6 +5970,7 @@ PIPs.Actions:List() done DebugInfoMinSepr + Func:Exit } @@ -5558,9 +5978,10 @@ PIPs.Actions:List() IPKs.Actions:List() { - [[ $opts_debug = true ]] || return + [[ $useropt_debug = true ]] || return Func:Init + local a='' local border_shown=false @@ -5583,6 +6004,7 @@ IPKs.Actions:List() done [[ $border_shown = true ]] && DebugInfoMinSepr + Func:Exit } @@ -5590,9 +6012,10 @@ IPKs.Actions:List() QPKGs.Actions:List() { - [[ $opts_debug = true ]] || return + [[ $useropt_debug = true ]] || return Func:Init + local a='' local b='' local border_shown=false @@ -5620,6 +6043,7 @@ QPKGs.Actions:List() done [[ $border_shown = true ]] && DebugInfoMinSepr + Func:Exit } @@ -5630,6 +6054,7 @@ QPKGs.Actions:ListAll() # Only used when debugging. Func:Init + local a='' local b='' DebugInfoMinSepr @@ -5643,6 +6068,7 @@ QPKGs.Actions:ListAll() done DebugInfoMinSepr + Func:Exit } @@ -5650,15 +6076,13 @@ QPKGs.Actions:ListAll() QPKGs.States:List() { - # input: - # $1 (optional passthrough) = `rebuild` - clear existing lists and rebuild them from scratch. - - [[ $opts_debug = true ]] || return + [[ $useropt_debug = true ]] || return Func:Init + local a='' - QPKGs.States:Build "${1:-}" + QPKGs.States:Build DebugInfoMinSepr for a in "${QPKG_IS_STATES[@]}" "${QPKG_SERVICE_RESULTS[@]}"; do @@ -5689,6 +6113,7 @@ QPKGs.States:List() done DebugInfoMinSepr + Func:Exit } @@ -5729,22 +6154,22 @@ QPKGs.States:Build() # - have config blocks in [/etc/config/qpkg.conf], but no files on-disk # - those in the process of starting, stopping, or restarting - # input: - # $1 (optional) = `rebuild` - clear existing lists and rebuild them from scratch - Func:Init + local a='' local b='' local c='' local f='' - [[ ${1:-} = rebuild ]] && QPKGs.States:Clear - if [[ ${qpkgs_states_built:=false} = true ]]; then DebugAsDone "don't build states: they're already built" + Func:Exit; return fi + Packages:Load + QPKGs.States:Init + OS.IsStarting && ShowAsWarn "$(GetQnapOS) is starting all enabled QPKGs ... check again in a few minutes" OS.IsStopping && ShowAsWarn "$(GetQnapOS) is shutting-down and all QPKGs are stopping" @@ -5757,7 +6182,8 @@ QPKGs.States:Build() fi ShowAsProc 'QPKG states' - MakePath "$STATES_PATH" states || return + + MakePath "$QPKG_STATES_PATH" states || return # Faster to launch several concurrent loops in the background, than a single loop. Launch those requiring more processing-time first. @@ -5769,7 +6195,7 @@ QPKGs.States:Build() echo installable else echo notinstallable - fi >> "$STATES_PATH/$a" + fi >> "$QPKG_STATES_PATH/$a" fi done & @@ -5780,7 +6206,7 @@ QPKGs.States:Build() echo upgradable else echo notupgradable - fi >> "$STATES_PATH/$a" + fi >> "$QPKG_STATES_PATH/$a" done & for a in $(QPKGs-SCall:Array); do @@ -5793,10 +6219,10 @@ QPKGs.States:Build() echo backedup else echo notbackedup - fi >> "$STATES_PATH/$a" + fi >> "$QPKG_STATES_PATH/$a" else echo notbackupable - fi >> "$STATES_PATH/$a" + fi >> "$QPKG_STATES_PATH/$a" done & for a in $(QPKGs-SCall:Array); do @@ -5806,7 +6232,7 @@ QPKGs.States:Build() echo missing else echo notmissing - fi >> "$STATES_PATH/$a" + fi >> "$QPKG_STATES_PATH/$a" done & for a in $(QPKGs-SCall:Array); do @@ -5816,7 +6242,7 @@ QPKGs.States:Build() echo enabled else echo notenabled - fi >> "$STATES_PATH/$a" + fi >> "$QPKG_STATES_PATH/$a" done & for a in $(QPKGs-SCall:Array); do @@ -5826,7 +6252,7 @@ QPKGs.States:Build() echo installed else echo notinstalled - fi >> "$STATES_PATH/$a" + fi >> "$QPKG_STATES_PATH/$a" done & wait 2>/dev/null @@ -5857,7 +6283,7 @@ QPKGs.States:Build() esac fi - f="$STATES_PATH/$a" + f="$QPKG_STATES_PATH/$a" [[ -e $f ]] || continue for c in $(<$f); do @@ -5892,13 +6318,15 @@ QPKGs.States:Build() notinstalled) QPKGs-ISNTinstalled:Add "$a" ;; - mising) + missing) QPKGs-ISmissing:Add "$a" + + # Also mark as not OK. QPKGs-ISok:Remove "$a" QPKGs-ISNTok:Add "$a" ;; - notmising) - QPKGs-ISNTmissing:Remove "$a" + notmissing) + QPKGs-ISNTmissing:Add "$a" ;; upgradable) QPKGs-SCupgradable:Add "$a" @@ -5910,41 +6338,43 @@ QPKGs.States:Build() done qpkgs_states_built=true - - if [[ ${1:-} != rebuild ]]; then - QPKGs.Missing:Show - QPKGs.NewVers:Show - fi + QPKGs.Missing:Show + QPKGs.NewVers:Show Func:Exit } -QPKGs.States:Clear() +QPKGs.States:Init() { # Clears in-memory state list objects + Objects:Load || return + Func:Init + local a='' - DebugAsProc 'clearing existing state lists' + DebugAsProc 'initialising state lists' - for a in "${USER_QPKG_IS_STATES[@]}" "${QPKG_STATES_TRANSIENT[@]}"; do + for a in "${USER_QPKG_IS_STATES[@]:-}" "${QPKG_STATES_TRANSIENT[@]:-}"; do [[ $a = active ]] && continue # don't reset. QPKGs-IS${a}:Init done - for a in "${USER_QPKG_ISNT_STATES[@]}"; do + for a in "${USER_QPKG_ISNT_STATES[@]:-}"; do [[ $a = active ]] && continue # don't reset. QPKGs-ISNT${a}:Init done - ClearPath "$THIS_PACKAGE_PATH" "$STATES_PATH" + ClearPath /var/run/sherpa/packages "$QPKG_STATES_PATH" - DebugAsDone 'cleared existing state lists' + DebugAsDone 'initialised state lists' qpkgs_states_built=false + Func:Exit + } QPKGs.IsCanBackup:Build() @@ -5953,6 +6383,7 @@ QPKGs.IsCanBackup:Build() # Build a list of QPKGs that support `backup` and `restore` actions. Func:Init + local a='' for a in $(QPKGs-SCall:Array); do @@ -5969,6 +6400,7 @@ QPKGs.IsCanRestartToUpdate:Build() # Build a list of QPKGs that support application update on QPKG restart. Func:Init + local a='' for a in $(QPKGs-SCall:Array); do @@ -5985,6 +6417,7 @@ QPKGs.IsCanClean:Build() # Build a list of QPKGs that support `clean` actions. Func:Init + local a='' for a in $(QPKGs-SCall:Array); do @@ -6002,19 +6435,23 @@ QPKGs.IsTimeoutsIncreased() } -Report.Abbreviations:Show() +Help.Abbreviations:Show() { Func:Init + local a='' local b='' local -i n=0 maxcols=2 + + Packages:Load + local -i t=$(QPKGs-SCall:Count) - DisplayWritingReport + DisplayProcReport abbreviations DisableDebugToArchiveAndFile - [[ -n $REPORTS_PATH && -d $REPORTS_PATH ]] && ClearPath "$THIS_PACKAGE_PATH" "$REPORTS_PATH" + ResetReportsPath &>/dev/null { @@ -6039,7 +6476,7 @@ Report.Abbreviations:Show() [[ -e $f ]] && b+="$(<$f)\n" # add newline to each imported report line done - [[ -n $b ]] && echo -e "$b" >>"$REPORT_OUTPUT_PATHFILE" + [[ -n $b ]] && echo -en "$b" >>"$REPORT_OUTPUT_PATHFILE" { @@ -6058,6 +6495,7 @@ Report.Abbreviations:Show() fi QPKGs.States:List + Func:Exit } @@ -6066,12 +6504,13 @@ Report.Backups:Show() { Func:Init + local epochtime=0 # Allow float as seconds have a fractional component. local filename='' local highlight_older_than='2 weeks ago' local format='' DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport backups { @@ -6107,6 +6546,7 @@ Report.Backups:Show() EraseThisLine [[ -e $REPORT_OUTPUT_PATHFILE ]] && $CAT_CMD "$REPORT_OUTPUT_PATHFILE" + Func:Exit } @@ -6115,21 +6555,23 @@ Report.Dependencies:Show() { Func:Init + local a='' local b='' local -i n=0 maxcols=8 local -i t=$(QPKGs-SCall:Count) - DisplayWritingReport + DisplayProcReport dependency DisableDebugToArchiveAndFile - [[ -n $REPORTS_PATH && -d $REPORTS_PATH ]] && ClearPath "$THIS_PACKAGE_PATH" "$REPORTS_PATH" + ResetReportsPath &>/dev/null { DisplayAsHelpTitle "package dependencies are automatically installed/started/stopped/restarted as-required." DisplayAsHelpTitle "requirements shown in \"$(TextBrightOrange '* orange')\" prevent the package being installed." DisplayAsHelpTitle "those shown in \"$(TextBrightRed '! red')\" are preventing the package from working correctly." + Display DisplayAsDepsReportTitleLine } >"$REPORT_OUTPUT_PATHFILE" @@ -6149,7 +6591,8 @@ Report.Dependencies:Show() [[ -e $f ]] && b+="$(<$f)\n" # add newline to each imported report line done - [[ -n $b ]] && echo -e "$b" >>"$REPORT_OUTPUT_PATHFILE" + [[ -n $b ]] && echo -en "$b" >>"$REPORT_OUTPUT_PATHFILE" + EraseThisLine if [[ -e $REPORT_OUTPUT_PATHFILE ]]; then @@ -6159,6 +6602,7 @@ Report.Dependencies:Show() fi QPKGs.States:List + Func:Exit } @@ -6167,11 +6611,12 @@ Report.Packages:Show() { Func:Init + local a='' maxcols=3 DisableDebugToArchiveAndFile - DisplayWritingReport + DisplayProcReport package { @@ -6205,15 +6650,16 @@ Report.Repos:Show() { Func:Init + local a='' local b='' local -i n=0 maxcols=3 local -i t=$(QPKGs-SCall:Count) - DisplayWritingReport + DisplayProcReport repository DisableDebugToArchiveAndFile - [[ -n $REPORTS_PATH && -d $REPORTS_PATH ]] && ClearPath "$THIS_PACKAGE_PATH" "$REPORTS_PATH" + ResetReportsPath &>/dev/null DisplayAsReposReportTitleLine >"$REPORT_OUTPUT_PATHFILE" for a in $(QPKGs-SCall:Array); do @@ -6231,7 +6677,8 @@ Report.Repos:Show() [[ -e $f ]] && b+="$(<$f)\n" # add newline to each imported report line done - [[ -n $b ]] && echo -e "$b" >>"$REPORT_OUTPUT_PATHFILE" + [[ -n $b ]] && echo -en "$b" >>"$REPORT_OUTPUT_PATHFILE" + EraseThisLine if [[ -e $REPORT_OUTPUT_PATHFILE ]]; then @@ -6241,6 +6688,7 @@ Report.Repos:Show() fi QPKGs.States:List + Func:Exit } @@ -6249,6 +6697,7 @@ Report.Statuses:Show() { Func:Init + local a='' local b='' local f='' @@ -6257,8 +6706,8 @@ Report.Statuses:Show() maxcols=5 local -i t=$(QPKGs-SCall:Count) - DisplayWritingReport - [[ -n $REPORTS_PATH && -d $REPORTS_PATH ]] && ClearPath "$THIS_PACKAGE_PATH" "$REPORTS_PATH" + DisplayProcReport status + ResetReportsPath &>/dev/null CalcMaxStatusReportCols DisplayAsStatusReportTitleLine >"$REPORT_OUTPUT_PATHFILE" @@ -6277,9 +6726,10 @@ Report.Statuses:Show() [[ -e $f ]] && b+="$(<$f)\n" # add newline to each imported report line done - [[ -n $b ]] && echo -e "$b" >>"$REPORT_OUTPUT_PATHFILE" + [[ -n $b ]] && echo -en "$b" >>"$REPORT_OUTPUT_PATHFILE" EraseThisLine + WriteEmptyLineIfNoneExists # Need this to separate the "done: actions complete" message shown earlier. if QPKGs-ISslow.IsAny; then { @@ -6296,6 +6746,7 @@ Report.Statuses:Show() fi QPKGs.States:List + Func:Exit } @@ -6769,7 +7220,7 @@ GetPerlVer() GetThisBinPath() { - [[ -n ${1:?${FUNCNAME[0]}'()': undefined} ]] && command -v "$1" 2>&1 + [[ -n ${1:?${FUNCNAME[0]}'()': undefined binary} ]] && command -v "$1" 2>&1 } @@ -7105,7 +7556,7 @@ OS.IsLoadAverageInsane() Error:Set() { - skip_package_actions=true + bypass_package_actions=true Error.IsSet && return _script_error_flag_=true DebugVar _script_error_flag_ @@ -7132,10 +7583,10 @@ ShowZeroQpkgs() local a='' local b='' - [[ $load_packages = true ]] || return + [[ ${packages_loaded:=false} = true ]] || return - for a in "${USER_QPKG_IS_STATES[@]}"; do - for b in "${USER_QPKG_ACTIONS[@]}"; do + for a in "${USER_QPKG_IS_STATES[@]:-}"; do + for b in "${USER_QPKG_ACTIONS[@]:-}"; do [[ $b = list ]] && continue # action results lists are unavailable for these QPKGs.AC${b}.IS${a}.IsSet && QPKGs-AC${b}-ok.IsNone && ShowAsWarn "no QPKGs were able to $(Lowercase "$b")" @@ -7176,8 +7627,8 @@ LockFile:Release() Verbose:Enable() { - opts_verbose=true - DebugVar opts_verbose + useropt_verbose=true + DebugVar useropt_verbose Keystrokes:Show Cursor:Show @@ -7187,8 +7638,8 @@ Verbose:Enable() EnableDebugToArchiveAndFile() { - opts_debug=true - DebugVar opts_debug + useropt_debug=true + DebugVar useropt_debug ShowAsNote "debug mode activated, $(ShowTitleName) will run a little slower than usual" @@ -7200,7 +7651,7 @@ EnableDebugToArchiveAndFile() DisableDebugToArchiveAndFile() { - opts_debug=false + useropt_debug=false archive_debug_afterward=false } @@ -7222,11 +7673,11 @@ SaveActionResultToLog() local -r VAR_NAME=${FUNCNAME[1]}_STARTSECONDS local var_safe_name=${VAR_NAME//[.-]/_} var_safe_name=${var_safe_name//:/_} - local -r PACKAGE_TYPE=${1:?${FUNCNAME[0]}'()': undefined} - local -r PACKAGE_NAME=${2:?${FUNCNAME[0]}'()': undefined} - local -r ACTION=${3:?${FUNCNAME[0]}'()': undefined} + local -r PACKAGE_TYPE=${1:?${FUNCNAME[0]}'()': undefined package type} + local -r PACKAGE_NAME=${2:?${FUNCNAME[0]}'()': undefined packagename} + local -r ACTION=${3:?${FUNCNAME[0]}'()': undefined action} local -r CLEAN_ACTION=${ACTION//\"/} - local -r RESULT=${4:?${FUNCNAME[0]}'()': undefined} + local -r RESULT=${4:?${FUNCNAME[0]}'()': undefined result} local -r REASON=${5:-} local -r DURATION=$(CalcMilliDifference "${!var_safe_name}" "$(/bin/date +%s%N)") local -r ACTION_TIMES_PATHFILE=$ACTION_TIMES_PATH/$CLEAN_ACTION.milliseconds @@ -7263,6 +7714,13 @@ SaveActionResultToLog() } +# * Action return codes (only recorded in debug log). +# 0 = ok +# 1 = skipped +# 2 = skipped-ok +# 3 = skipped-abort +# 4 = skipped-error + _QPKG:reassign_() { @@ -7275,20 +7733,20 @@ _QPKG:reassign_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local -i z=0 if ! QPKGs-ISinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" reassign skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif [[ $(QPKG.GetStoreID "$PACKAGE_NAME") = sherpa ]]; then SaveActionResultToLog QPKG "$PACKAGE_NAME" reassign skipped 'already assigned to sherpa' MarkThisActionForkAsSkipped - z=2 + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -7322,10 +7780,10 @@ _QPKG:download_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local -r REMOTE_URL=$(QPKG.GetURL "$PACKAGE_NAME") local -r REMOTE_FILENAME=$($BASENAME_CMD "$REMOTE_URL") local -r REMOTE_HASH=$(QPKG.GetHash "$PACKAGE_NAME") @@ -7337,12 +7795,12 @@ _QPKG:download_() if [[ -z $REMOTE_URL || -z $REMOTE_HASH ]]; then SaveActionResultToLog QPKG "$PACKAGE_NAME" download skipped 'NAS arch is incompatible' MarkThisActionForkAsSkipped - z=2 + z=1 elif [[ -f $LOCAL_PATHFILE ]]; then if FileMatchesMD5 "$LOCAL_PATHFILE" "$REMOTE_HASH"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" download skipped-ok "existing file $(ShowAsFileName "$LOCAL_FILENAME") checksum correct" MarkThisActionForkAsSkippedOk -# FuncFork:Exit 0 + z=2 else DebugInfo "deleting $(ShowAsFileName "$LOCAL_FILENAME") as checksum is incorrect" rm -f "$LOCAL_PATHFILE" @@ -7394,29 +7852,29 @@ _QPKG:install_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" install skipped 'already installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsArchOK "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" install skipped 'NAS arch is incompatible' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsMinOSVerOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" install skipped "$(GetQnapOS) version is incompatible" MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsMinRAMOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" install skipped 'NAS has insufficient RAM' MarkThisActionForkAsSkipped - z=2 + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -7449,7 +7907,7 @@ _QPKG:install_() local target_path='' DebugAsProc "installing $(ShowAsPackageName "$PACKAGE_NAME")" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' [[ ${QPKGs_were_installed_name[*]:-} = *"$PACKAGE_NAME"* ]] && target_path="QINSTALL_PATH=$(QPKG.GetOriginalPath "$PACKAGE_NAME") " RunAndLog "${a}${target_path}${SH_CMD} $local_pathfile" "$LOGS_PATH/$($BASENAME_CMD "$local_pathfile").$INSTALL_LOG_FILE" log:failure-only 10 @@ -7508,21 +7966,21 @@ _QPKG:reinstall_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if ! QPKGs-ISinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" reinstall skipped "not installed, please use 'install' instead." MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" reinstall skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -7544,7 +8002,7 @@ _QPKG:reinstall_() local target_path='' DebugAsProc "reinstalling $(ShowAsPackageName "$PACKAGE_NAME")" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' QPKG.IsInstalled "$PACKAGE_NAME" && target_path="QINSTALL_PATH=$($DIRNAME_CMD "$(QPKG.GetInstallationPath $PACKAGE_NAME)") " RunAndLog "${a}${target_path}${SH_CMD} $local_pathfile" "$LOGS_PATH/$($BASENAME_CMD "$local_pathfile").$REINSTALL_LOG_FILE" log:failure-only 10 @@ -7576,6 +8034,50 @@ _QPKG:reinstall_() } +_QPKG:rebuild_() + { + + # * This function runs autonomously * + # Meta-action: rebuilds the QPKG named in $1. This is a `download`, `install` and `restore`, but only if a backup file exists for this QPKG. + + # input: + # $1 = QPKG name + + # output: + # $? = none, this function executes in the background. + + [[ $useropt_verbose != true ]] && exec &>/dev/null + FuncFork:Init + + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} + local -i z=0 + + if ! QPKG.IsCanBackup; then + SaveActionResultToLog QPKG "$PACKAGE_NAME" meta-rebuild skipped 'does not support rebuild' + MarkThisActionForkAsSkipped + z=1 + elif ! QPKG.IsBackupExist "$PACKAGE_NAME"; then + SaveActionResultToLog QPKG "$PACKAGE_NAME" meta-rebuild skipped 'backup does not exist' + MarkThisActionForkAsSkipped + z=1 + elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then + SaveActionResultToLog QPKG "$PACKAGE_NAME" meta-rebuild skipped "assigned to another repository, please 'reassign' it first" + MarkThisActionForkAsSkipped + z=1 + fi + + [[ $z -eq 0 ]] || FuncFork:Exit $z + + DebugAsProc "meta-rebuilding $(ShowAsPackageName "$PACKAGE_NAME")" + # Nothing-to-do here, real QPKG actions have already been assigned in Env:Validate(). + + SaveActionResultToLog QPKG "$PACKAGE_NAME" meta-rebuild ok + MarkThisActionForkAsOk + QPKG.AppCenterNotifier:Clear + FuncFork:Exit $z + + } + _QPKG:upgrade_() { @@ -7588,25 +8090,25 @@ _QPKG:upgrade_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if ! QPKGs-ISinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" upgrade skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKGs-SCupgradable.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" upgrade skipped 'no new package is available' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" upgrade skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -7629,7 +8131,7 @@ _QPKG:upgrade_() local target_path='' DebugAsProc "upgrading $(ShowAsPackageName "$PACKAGE_NAME")" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' QPKG.IsInstalled "$PACKAGE_NAME" && target_path="QINSTALL_PATH=$($DIRNAME_CMD "$(QPKG.GetInstallationPath "$PACKAGE_NAME")") " RunAndLog "${a}${target_path}${SH_CMD} $local_pathfile" "$LOGS_PATH/$($BASENAME_CMD "$local_pathfile").$UPGRADE_LOG_FILE" log:failure-only 10 @@ -7680,25 +8182,25 @@ _QPKG:uninstall_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" uninstall skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif [[ $PACKAGE_NAME = sherpa ]]; then SaveActionResultToLog QPKG "$PACKAGE_NAME" uninstall skipped "it's needed here! 😉" MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" uninstall skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -7709,7 +8211,7 @@ _QPKG:uninstall_() if [[ -e $QPKG_UNINSTALLER_PATHFILE ]]; then DebugAsProc "uninstalling $(ShowAsPackageName "$PACKAGE_NAME")" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' RunAndLog "${a}${SH_CMD} $QPKG_UNINSTALLER_PATHFILE" "$LOGS_PATH/$PACKAGE_NAME.$UNINSTALL_LOG_FILE" log:failure-only z=$? @@ -7757,21 +8259,21 @@ _QPKG:activate_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" activate skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" activate skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -7785,10 +8287,10 @@ _QPKG:activate_() DebugAsProc "activating $(ShowAsPackageName "$PACKAGE_NAME")" if [[ $service_pathfile = undefined ]]; then - SaveActionResultToLog QPKG "$PACKAGE_NAME" activate skipped "service script file undefined" + SaveActionResultToLog QPKG "$PACKAGE_NAME" activate skipped-error 'service script file undefined' MarkThisActionForkAsSkippedError - FuncFork:Exit 2 - elif [[ $opts_debug = true ]]; then + FuncFork:Exit 4 + elif [[ $useropt_debug = true ]]; then a='DEBUG_QPKG=true ' RunAndLog "${a}${service_pathfile} start" "$LOG_PATHFILE" log:failure-only z=$? @@ -7835,21 +8337,21 @@ _QPKG:reactivate_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" reactivate skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" reactivate skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -7863,10 +8365,10 @@ _QPKG:reactivate_() DebugAsProc "reactivating $(ShowAsPackageName "$PACKAGE_NAME")" if [[ $service_pathfile = undefined ]]; then - SaveActionResultToLog QPKG "$PACKAGE_NAME" reactivate skipped "service script file undefined" + SaveActionResultToLog QPKG "$PACKAGE_NAME" reactivate skipped-error 'service script file undefined' MarkThisActionForkAsSkippedError - FuncFork:Exit 2 - elif [[ $opts_debug = true ]]; then + FuncFork:Exit 4 + elif [[ $useropt_debug = true ]]; then a='DEBUG_QPKG=true ' RunAndLog "${a}${service_pathfile} restart" "$LOG_PATHFILE" log:failure-only z=$? @@ -7904,25 +8406,25 @@ _QPKG:deactivate_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" deactivate skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif [[ $PACKAGE_NAME = sherpa ]]; then SaveActionResultToLog QPKG "$PACKAGE_NAME" deactivate skipped "it's needed here! 😉" MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" deactivate skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -7936,10 +8438,10 @@ _QPKG:deactivate_() DebugAsProc "deactivating $(ShowAsPackageName "$PACKAGE_NAME")" if [[ $service_pathfile = undefined ]]; then - SaveActionResultToLog QPKG "$PACKAGE_NAME" deactivate skipped "service script file undefined" + SaveActionResultToLog QPKG "$PACKAGE_NAME" deactivate skipped-error 'service script file undefined' MarkThisActionForkAsSkippedError - FuncFork:Exit 2 - elif [[ $opts_debug = true ]]; then + FuncFork:Exit 4 + elif [[ $useropt_debug = true ]]; then a='DEBUG_QPKG=true ' RunAndLog "${a}${service_pathfile} stop" "$LOG_PATHFILE" log:failure-only z=$? @@ -7985,24 +8487,24 @@ _QPKG:enable_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" enable skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif QPKGs-ISenabled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" enable skipped 'already enabled' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" enable skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -8035,28 +8537,28 @@ _QPKG:disable_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" disable skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif QPKGs-ISNTenabled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" disable skipped 'already disabled' MarkThisActionForkAsSkipped - z=2 + z=1 elif [[ $PACKAGE_NAME = sherpa ]]; then SaveActionResultToLog QPKG "$PACKAGE_NAME" disable skipped "it's needed here! 😉" MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" disable skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -8090,31 +8592,31 @@ _QPKG:enableau_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" enableau skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsCanRestartToUpdate "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" enableau skipped 'does not support auto-updating' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" enableau skipped "assigned to another repository, please 'reassign' it first" MarkThisActionForkAsSkipped - z=2 + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z DebugAsProc "enabling auto-update $(ShowAsPackageName "$PACKAGE_NAME")" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' RunAndLog "${a}$(QPKG.GetServicePathFile) enable-auto-update" "$LOGS_PATH/$PACKAGE_NAME.$ENABLEAU_LOG_FILE" log:failure-only z=$? @@ -8145,31 +8647,31 @@ _QPKG:disableau_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" disableau skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsCanRestartToUpdate "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" disableau skipped 'does not support auto-updating' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" disableau skipped "assigned to another repository, please 'reassign' it first" MarkThisActionForkAsSkipped - z=2 + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z DebugAsProc "disabling auto-update $(ShowAsPackageName "$PACKAGE_NAME")" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' RunAndLog "${a}$(QPKG.GetServicePathFile) disable-auto-update" "$LOGS_PATH/$PACKAGE_NAME.$DISABLEAU_LOG_FILE" log:failure-only z=$? @@ -8200,31 +8702,31 @@ _QPKG:backup_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" backup skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsCanBackup; then SaveActionResultToLog QPKG "$PACKAGE_NAME" backup skipped 'does not support backup' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" backup skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z DebugAsProc "backing-up $(ShowAsPackageName "$PACKAGE_NAME") configuration" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' RunAndLog "${a}$(QPKG.GetServicePathFile) backup" "$LOGS_PATH/$PACKAGE_NAME.$BACKUP_LOG_FILE" log:failure-only z=$? @@ -8256,31 +8758,35 @@ _QPKG:restore_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" restore skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsCanBackup; then SaveActionResultToLog QPKG "$PACKAGE_NAME" restore skipped 'does not support restore' MarkThisActionForkAsSkipped - z=2 + z=1 + elif ! QPKG.IsBackupExist "$PACKAGE_NAME"; then + SaveActionResultToLog QPKG "$PACKAGE_NAME" restore skipped 'backup does not exist' + MarkThisActionForkAsSkipped + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" restore skipped "assigned to another repository, please 'reassign' it first" - MarkThisActionForkAsSkippedError - z=2 + MarkThisActionForkAsSkipped + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z DebugAsProc "restoring $(ShowAsPackageName "$PACKAGE_NAME") configuration" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' RunAndLog "${a}$(QPKG.GetServicePathFile) restore" "$LOGS_PATH/$PACKAGE_NAME.$RESTORE_LOG_FILE" log:failure-only z=$? @@ -8312,31 +8818,31 @@ _QPKG:clean_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local -i z=0 if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" clean skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsCanClean; then SaveActionResultToLog QPKG "$PACKAGE_NAME" clean skipped 'does not support cleaning' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" clean skipped "assigned to another repository, please 'reassign' it first" MarkThisActionForkAsSkipped - z=2 + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z DebugAsProc "cleaning $(ShowAsPackageName "$PACKAGE_NAME")" - [[ $opts_debug = true ]] && a='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && a='DEBUG_QPKG=true ' RunAndLog "${a}$(QPKG.GetServicePathFile) clean" "$LOGS_PATH/$PACKAGE_NAME.$CLEAN_LOG_FILE" log:failure-only z=$? @@ -8371,10 +8877,10 @@ _QPKG:sign_() # output: # $? = none, this function executes in the background. But an exitcode is recorded in the debug log. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - local -r PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + local -r PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local b='' local -i z=0 @@ -8392,15 +8898,15 @@ _QPKG:sign_() if ! QPKGs-ISinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" '"sign"' skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! OS.IsSupportSignedPackages; then SaveActionResultToLog QPKG "$PACKAGE_NAME" '"sign"' skipped 'not required: firmware < 4.3.5' MarkThisActionForkAsSkipped - z=2 + z=1 elif ! QPKG.IsRepoOk "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" '"sign"' skipped "assigned to another repository, please 'reassign' it first" MarkThisActionForkAsSkipped - z=2 + z=1 elif [[ ! -e $SQLITE_CMD ]]; then SaveActionResultToLog QPKG "$PACKAGE_NAME" '"sign"' skipped-abort 'sqlite3 unavailable' MarkThisActionForkAsSkippedAbort @@ -8470,10 +8976,10 @@ _QPKG:status_() # output: # $? = none, this function executes in the background. - [[ $opts_verbose != true ]] && exec &>/dev/null + [[ $useropt_verbose != true ]] && exec &>/dev/null FuncFork:Init - PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined} + PACKAGE_NAME=${1:?${FUNCNAME[0]}'()': undefined packagename} local a='' local b='' local -i z=0 @@ -8481,7 +8987,7 @@ _QPKG:status_() if QPKGs-ISNTinstalled.Exist "$PACKAGE_NAME"; then SaveActionResultToLog QPKG "$PACKAGE_NAME" status skipped 'not installed' MarkThisActionForkAsSkipped - z=2 + z=1 fi [[ $z -eq 0 ]] || FuncFork:Exit $z @@ -8491,7 +8997,7 @@ _QPKG:status_() a=$(QPKG.GetActiveTest "$PACKAGE_NAME") if [[ $a = builtin ]]; then - [[ $opts_debug = true ]] && b='DEBUG_QPKG=true ' + [[ $useropt_debug = true ]] && b='DEBUG_QPKG=true ' if [[ -e $GNU_TIMEOUT_CMD ]]; then # run status query with a timeout if-possible. $GNU_TIMEOUT_CMD "$QPKG_STATUS_CHECK_TIMEOUT_SECONDS" /bin/bash -c "${b}$(QPKG.GetServicePathFile) status" @@ -8773,7 +9279,7 @@ QPKG.IsBackupExist() # output: # $? = 0 if true, 1 if false - [[ -e $QPKG_BU_PATH/${1:?${FUNCNAME[0]}'()': undefined}.config.tar.gz ]] + [[ -e $QPKG_BU_PATH/${1:?${FUNCNAME[0]}'()': undefined packagename}.config.tar.gz ]] } @@ -8792,7 +9298,7 @@ QPKG.IsDependent() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then a=${QPKG_DEPENDS_ON[$i]} [[ $a = default ]] && a=${QPKG_DEPENDS_ON[$(QPKG.GetDefaultArchIndex "${QPKG_NAME[$i]}")]} [[ $a = none ]] && break @@ -8854,7 +9360,7 @@ QPKG.GetOriginalPath() if [[ ${#QPKGs_were_installed_name[@]} -gt 0 ]]; then for i in "${!QPKGs_were_installed_name[@]}"; do - if [[ ${QPKGs_were_installed_name[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKGs_were_installed_name[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKGs_were_installed_path[$i]}" return 0 fi @@ -8906,7 +9412,7 @@ QPKG.GetPathFilename() # stdout = QPKG local filename. # $? = 0 if successful, 1 if failed. - local a=$(QPKG.GetURL "${1:?${FUNCNAME[0]}'()': undefined}") + local a=$(QPKG.GetURL "${1:?${FUNCNAME[0]}'()': undefined packagename}") [[ -n $a ]] || return [[ $(Lowercase "${a##*.}") != qpkg ]] && a=${a%.*}.qpkg # Swap `zip` for `qpkg` here (only for compatibilty with `QDK.zip`). @@ -8930,7 +9436,7 @@ QPKG.GetHash() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]] && [[ ${QPKG_ARCH[$i]} = all || ${QPKG_ARCH[$i]} = "$NAS_QPKG_ARCH" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]] && [[ ${QPKG_ARCH[$i]} = all || ${QPKG_ARCH[$i]} = "$NAS_QPKG_ARCH" ]]; then echo "${QPKG_HASH[$i]}" return 0 fi @@ -8953,7 +9459,7 @@ QPKG.GetURL() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]] && [[ ${QPKG_ARCH[$i]} = all || ${QPKG_ARCH[$i]} = "$NAS_QPKG_ARCH" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]] && [[ ${QPKG_ARCH[$i]} = all || ${QPKG_ARCH[$i]} = "$NAS_QPKG_ARCH" ]]; then echo "${QPKG_URL[$i]}" return 0 fi @@ -8993,7 +9499,7 @@ QPKG.GetMinRAM() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_MIN_RAM_KB[$i]}" return 0 fi @@ -9012,7 +9518,7 @@ QPKG.IsMinRAMOk() # output: # $? = 0 if this NAS meets the minium RAM requirements for QPKG name, 1 if not. - local a=$(QPKG.GetMinRAM "${1:?${FUNCNAME[0]}'()': undefined}") + local a=$(QPKG.GetMinRAM "${1:?${FUNCNAME[0]}'()': undefined packagename}") [[ -n $a ]] && [[ $a = none || $NAS_RAM_KB -ge $a ]] } @@ -9030,7 +9536,7 @@ QPKG.GetMinOSVer() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_MIN_OS_VERSION[$i]}" return 0 fi @@ -9049,7 +9555,7 @@ QPKG.IsMinOSVerOk() # output: # $? = 0 if this NAS meets the minium OS firmware version requirements for QPKG name, 1 if not. - local a=$(QPKG.GetMinOSVer "${1:?${FUNCNAME[0]}'()': undefined}") + local a=$(QPKG.GetMinOSVer "${1:?${FUNCNAME[0]}'()': undefined packagename}") [[ -n $a ]] && [[ $a = none || ${NAS_FIRMWARE_VER//.} -ge $a ]] } @@ -9067,7 +9573,7 @@ QPKG.GetMaxOSVer() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_MAX_OS_VERSION[$i]}" return 0 fi @@ -9086,7 +9592,7 @@ QPKG.IsMaxOSVerOk() # output: # $? = 0 if this NAS meets the maximum OS firmware version requirements for QPKG name, 1 if not. - local a=$(QPKG.GetMaxOSVer "${1:?${FUNCNAME[0]}'()': undefined}") + local a=$(QPKG.GetMaxOSVer "${1:?${FUNCNAME[0]}'()': undefined packagename}") [[ -n $a ]] && [[ $a = none || ${NAS_FIRMWARE_VER//.} -le $a ]] @@ -9107,7 +9613,7 @@ QPKG.GetAuthor() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_AUTHOR[$i]}" return 0 fi @@ -9132,7 +9638,7 @@ QPKG.GetAuthorEmail() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_AUTHOR_EMAIL[$i]}" return 0 fi @@ -9157,7 +9663,7 @@ QPKG.GetAppAuthor() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_APP_AUTHOR[$i]}" return 0 fi @@ -9182,7 +9688,7 @@ QPKG.GetAppAuthorEmail() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_APP_AUTHOR_EMAIL[$i]}" return 0 fi @@ -9205,7 +9711,7 @@ QPKG.GetDesc() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_DESC[$i]}" return 0 fi @@ -9231,7 +9737,7 @@ QPKG.GetNote() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then a=${QPKG_NOTE[$i]} [[ $a != none ]] && echo -n "$a" return 0 @@ -9255,7 +9761,7 @@ QPKG.GetAbbrvs() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "${QPKG_ABBRVS[$i]}" return 0 fi @@ -9280,7 +9786,7 @@ QPKG.GetArchIndex() local -i i=-1 # default to not-found. for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then if [[ ${QPKG_ARCH[$i]} = all || ${QPKG_ARCH[$i]} = "$NAS_QPKG_ARCH" ]]; then echo "$i" return @@ -9309,7 +9815,7 @@ QPKG.GetDefaultArchIndex() local -i i=-1 # default to not-found. for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then echo "$i" return fi @@ -9497,7 +10003,7 @@ QPKG.IsCanRestartToUpdate() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then if ${QPKG_CAN_RESTART_TO_UPDATE[$i]}; then return 0 else @@ -9582,7 +10088,7 @@ QPKG.GetActiveTest() local -i i=0 for i in "${!QPKG_NAME[@]}"; do - if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined}" ]]; then + if [[ ${QPKG_NAME[$i]} = "${1:?${FUNCNAME[0]}'()': undefined packagename}" ]]; then a=${QPKG_TEST_FOR_ACTIVE[$i]} [[ -n $a ]] || break @@ -9604,7 +10110,7 @@ QPKG.IsInstalled() # output: # $? = 0 (true) or 1 (false) - $GREP_CMD -q "^\[${1:?${FUNCNAME[0]}'()': undefined}\]" /etc/config/qpkg.conf + $GREP_CMD -q "^\[${1:?${FUNCNAME[0]}'()': undefined packagename}\]" /etc/config/qpkg.conf } @@ -9617,7 +10123,7 @@ QPKG.IsNtInstalled() # output: # $? = 0 (true) or 1 (false) - ! QPKG.IsInstalled "${1:?${FUNCNAME[0]}'()': undefined}" + ! QPKG.IsInstalled "${1:?${FUNCNAME[0]}'()': undefined packagename}" } @@ -9630,7 +10136,7 @@ QPKG.IsMissing() # output: # $? = 0 (true) or 1 (false). - local a=$(QPKG.GetInstallationPath "${1:?${FUNCNAME[0]}'()': undefined}") + local a=$(QPKG.GetInstallationPath "${1:?${FUNCNAME[0]}'()': undefined packagename}") [[ $a != undefined && ! -d $a ]] } @@ -9644,7 +10150,7 @@ QPKG.IsEnabled() # output: # $? = 0 (true) or 1 (false). - [[ $(/sbin/getcfg "${1:?${FUNCNAME[0]}'()': undefined}" Enable -u -f /etc/config/qpkg.conf) = TRUE ]] + [[ $(/sbin/getcfg "${1:?${FUNCNAME[0]}'()': undefined packagename}" Enable -u -f /etc/config/qpkg.conf) = TRUE ]] } @@ -9658,7 +10164,7 @@ QPKG.GetServiceStatus() # $stdout = last known package service status. # $? = 0 if found, 1 if not found. - local a=${1:?${FUNCNAME[0]}'()': undefined} + local a=${1:?${FUNCNAME[0]}'()': undefined packagename} [[ -e /var/run/$a.last.operation ]] && echo "$( "$2" DebugAsProc "exec: '$1'" - if [[ $opts_verbose = true ]]; then + if [[ $useropt_verbose = true ]]; then eval "$1 > >($TEE_CMD $LOG_PATHFILE) 2>&1" # NOTE: `tee` buffers stdout here z=$? else - (eval "$1" > "$LOG_PATHFILE" 2>&1) # run in a subshell to suppress 'Terminated' message later + (eval "$1" > "$LOG_PATHFILE" 2>&1) # run in a subshell to suppress 'Terminated' message later z=$? fi @@ -9827,9 +10334,9 @@ RunAndLog() case $z in 0|"${4:-}") - [[ ${3:-} != log:failure-only || $opts_debug = true ]] && AddExtLogToSessLog "$2" + [[ ${3:-} != log:failure-only || $useropt_debug = true ]] && AddExtLogToSessLog "$2" DebugAsDone 'exec: complete' - [[ $opts_debug = false ]] && rm -f "$2" + [[ $useropt_debug = false ]] && rm -f "$2" ;; *) AddExtLogToSessLog "$2" @@ -9856,7 +10363,7 @@ FileMatchesMD5() # $1 = pathfile to generate an MD5 checksum for. # $2 = MD5 checksum to compare against. - [[ $($MD5SUM_CMD "${1:?${FUNCNAME[0]}'()': undefined}" | cut -f1 -d' ') = "${2:?${FUNCNAME[0]}'()': undefined}" ]] + [[ $($MD5SUM_CMD "${1:?${FUNCNAME[0]}'()': undefined pathfile}" | cut -f1 -d' ') = "${2:?${FUNCNAME[0]}'()': undefined checksum}" ]] } @@ -9971,7 +10478,7 @@ FormatAsIsoBytes() Title:Show() { - [[ $show_title = true && $title_shown = false && $opts_verbose = false ]] || return + [[ $show_title = true && $title_shown = false && $useropt_verbose = false ]] || return EraseThisLine @@ -9984,7 +10491,6 @@ Title:Show() fi title_shown=true - WriteEmptyLineIfNoneExists } @@ -10065,42 +10571,42 @@ ShowOptions() ShowAsPackageName() { - printf '%s' "${1:?${FUNCNAME[0]}'()': undefined}" + printf '%s' "${1:?${FUNCNAME[0]}'()': undefined packagename}" } ShowAsFileName() { - printf '%s' "'${1:?${FUNCNAME[0]}'()': undefined}'" + printf '%s' "'${1:?${FUNCNAME[0]}'()': undefined filename}'" } ShowAsURL() { - TextUnderlinedCyan "${1:?${FUNCNAME[0]}'()': undefined}" + TextUnderlinedCyan "${1:?${FUNCNAME[0]}'()': undefined URL}" } ShowAsExitcode() { - printf '%s' "[${1:?${FUNCNAME[0]}'()': undefined}]" + printf '%s' "[${1:?${FUNCNAME[0]}'()': undefined exitcode}]" } ShowAsLogFilename() { - printf '%s' "${CHARS_RESULTS}log file: '${1:?${FUNCNAME[0]}'()': undefined}'" + printf '%s' "${CHARS_RESULTS}log file: '${1:?${FUNCNAME[0]}'()': undefined filename}'" } ShowAsCommand() { - echo "${CHARS_RESULTS}command: '${1:?${FUNCNAME[0]}'()': undefined}'" + echo "${CHARS_RESULTS}command: '${1:?${FUNCNAME[0]}'()': undefined commandstring}'" } @@ -10123,21 +10629,25 @@ WriteEmptyLineIfNoneExists() { if [[ $linespace_visible = false ]]; then - echo - linespace_visible=true - else - linespace_visible=false + echo; linespace_visible=true fi } -DisplayWritingReport() +DisplayProcReport() { - if [[ ${report_title_shown:=false} = false ]]; then - ShowAsProc 'writing report' - report_title_shown=true - fi + # input: + # $1 = report type (optional) + + [[ ${report_title_shown:=false} = false ]] || return + + local a='' + [[ -n ${1:-} ]] && a="$1 " + + ShowAsProc "${a}report" + + report_title_shown=true } @@ -10371,7 +10881,8 @@ FuncFork:Init() # Redirect debug output to a temporary log, then add it to session log before exiting. This will keep action log progress in-order. original_sess_active_pathfile=$sess_active_pathfile - sess_active_pathfile=$($MKTEMP_CMD /var/log/"${FUNCNAME[1]}"_XXXXXX) + MakePath "$ACTION_LOGS_PATH" 'action logs' + sess_active_pathfile=$($MKTEMP_CMD "$ACTION_LOGS_PATH"/"${FUNCNAME[1]}"_XXXXXX) local -r VAR_NAME=${FUNCNAME[1]}_STARTSECONDS local var_safe_name=${VAR_NAME//[.-]/_} @@ -10511,7 +11022,7 @@ DebugThis() { [[ -n ${1:-} ]] || return - [[ ${opts_verbose:-false} = true ]] && ShowAsDebug "$1" + [[ ${useropt_verbose:-false} = true ]] && ShowAsDebug "$1" WriteToLog dbug "$1" } @@ -10524,21 +11035,21 @@ AddExtLogToSessLog() local a='' local original_verbose=false - if [[ $opts_verbose = true ]]; then # Prevent external log contents appearing onscreen again, because they've already been seen "live". + if [[ $useropt_verbose = true ]]; then # Prevent external log contents appearing onscreen again, because they've already been seen "live". original_verbose=true - opts_verbose=false + useropt_verbose=false fi DebugAsLog 'adding external log to main log' DebugExtLogMinSepr - DebugAsLog "$(ShowAsLogFilename "${1:?${FUNCNAME[0]}'()': undefined}")" + DebugAsLog "$(ShowAsLogFilename "${1:?${FUNCNAME[0]}'()': undefined pathfile}")" while read -r a; do DebugAsLog "$a" done < "$1" DebugExtLogMinSepr - opts_verbose=$original_verbose + useropt_verbose=$original_verbose } @@ -10560,7 +11071,7 @@ ShowAsProc() OpStepClearWait "$(TextBrightYellow proc)" "${a} ${CHARS_ELLIPSIS} ${b}" WriteToLog proc "${a}${b}" - [[ ${opts_verbose:=false} = true ]] && Display + [[ ${useropt_verbose:=false} = true ]] && Display } >&2 @@ -10766,11 +11277,11 @@ ShowAsIterativeProgress() # $5 = suffix2 "packages" # $6 = expected action duration: `long` (optional) - local -r ACTION=${1:?${FUNCNAME[0]}'()': undefined} + local -r ACTION=${1:?${FUNCNAME[0]}'()': undefined action} declare -i -r COUNT1=${2:-0} - local -r SUFFIX1=${3:?${FUNCNAME[0]}'()': undefined} + local -r SUFFIX1=${3:?${FUNCNAME[0]}'()': undefined suffix1} declare -i -r COUNT2=${4:-0} - local -r SUFFIX2=${5:?${FUNCNAME[0]}'()': undefined} + local -r SUFFIX2=${5:?${FUNCNAME[0]}'()': undefined suffix2} local -r DURATION=${6:-short} local progress_msg='' @@ -10809,24 +11320,24 @@ ShowAsActionLogDetail() case $3 in download|reassign|sign|uninstall) - DisplayAsIndentActionResultDurationReason "$3" "$2" "$5" "$6." + DisplayAsIndentActionResultDurationReason "$3" "$2" "$5" "$6" ;; *) if QPKG.IsCanLog "$2"; then DisplayAsIndentActionResultDurationReason "$3" "$2" "$5" "For more information: /etc/init.d/$($BASENAME_CMD "$(QPKG.GetServicePathFile "$2")") log" else - DisplayAsIndentActionResultDurationReason "$3" "$2" "$5" "$6." + DisplayAsIndentActionResultDurationReason "$3" "$2" "$5" "$6" fi esac else - DisplayAsIndentActionResultDurationReason "$3" "$2" "$5" 'no reason was provided by the service script.' + DisplayAsIndentActionResultDurationReason "$3" "$2" "$5" 'no reason was provided by the service script' fi ;; skipped*) if [[ -n "${6:-}" ]]; then - DisplayAsIndentActionResultDurationReason "$3" "$2" '' "$6." + DisplayAsIndentActionResultDurationReason "$3" "$2" '' "$6" else - DisplayAsIndentActionResultDurationReason "$3" "$2" '' "no reason provided." + DisplayAsIndentActionResultDurationReason "$3" "$2" '' "no reason provided" fi ;; *) @@ -10845,7 +11356,7 @@ OpStepClearWait() # $2 = detailed message. local -i n=4 # Width of the message type. - [[ ${colourful:=true} = true ]] && n=10 # Allow extra length for ANSI codes in message type. + [[ ${colourful:=false} = true ]] && n=10 # Allow extra length for ANSI codes in message type. DisplayWait "$(printf "\033[2K\r%-${n}s: %s" "${1:-}" "${2:-}")" @@ -10863,7 +11374,7 @@ OpStepClear() # $2 = detailed message. local -i n=4 # Width of the message type. - [[ ${colourful:=true} = true ]] && n=10 # Allow extra length for ANSI codes in message type. + [[ ${colourful:=false} = true ]] && n=10 # Allow extra length for ANSI codes in message type. Display "$(printf "\033[2K\r%-${n}s: %s" "${1:-}" "${2:-}")" @@ -10879,7 +11390,7 @@ WriteToLog() # $2 = message [[ -n ${1:-} && -n ${2:-} ]] || return - [[ ${opts_debug:=false} = true && -n $sess_active_pathfile ]] && printf '%-4s: %s\n' "$(StripANSICodes "$1")" "$(StripANSICodes "$2")" >> "$sess_active_pathfile" + [[ ${useropt_debug:=false} = true && -n $sess_active_pathfile ]] && printf '%-4s: %s\n' "$(StripANSICodes "$1")" "$(StripANSICodes "$2")" >> "$sess_active_pathfile" } @@ -10888,7 +11399,7 @@ TextBrightGreen() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;32m%s\033[0m' "$1" else printf '%s' "$1" @@ -10901,7 +11412,7 @@ TextBrightYellow() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;33m%s\033[0m' "$1" else printf '%s' "$1" @@ -10914,7 +11425,7 @@ TextBrightOrange() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;38;5;214m%s\033[0m' "$1" else printf '%s' "$1" @@ -10927,7 +11438,7 @@ TextBrightOrangeBlink() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;5;38;5;214m%s\033[0m' "$1" else printf '%s' "$1" @@ -10940,7 +11451,7 @@ TextBrightRed() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;31m%s\033[0m' "$1" else printf '%s' "$1" @@ -10953,7 +11464,7 @@ TextBrightRedBlink() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;5;31m%s\033[0m' "$1" else printf '%s' "$1" @@ -10966,7 +11477,7 @@ TextCyan() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;36m%s\033[0m' "$1" else printf '%s' "$1" @@ -10979,7 +11490,7 @@ TextDarkGrey() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;90m%s\033[0m' "$1" else printf '%s' "$1" @@ -10992,7 +11503,7 @@ TextUnderlined() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[4m%s\033[0m' "$1" else printf '%s' "$1" @@ -11005,7 +11516,7 @@ TextUnderlinedCyan() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[4;36m%s\033[0m' "$1" else printf '%s' "$1" @@ -11018,7 +11529,7 @@ TextBlackOnCyan() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[30;46m%s\033[0m' "$1" else printf '%s' "$1" @@ -11031,7 +11542,7 @@ TextBrightWhite() [[ -n ${1:-} ]] || return - if [[ ${colourful:=true} = true ]]; then + if [[ ${colourful:=false} = true ]]; then printf '\033[1;97m%s\033[0m' "$1" else printf '%s' "$1" @@ -11044,7 +11555,7 @@ StripANSICodes() # QTS 4.2.6 BusyBox `sed` doesn't fully support extended regexes, so code-stripping only works with a real `sed`. - if [[ -e /opt/bin/sed && -L /opt/etc/passwd ]]; then # Try to ensure Entware is active before using this utility. + if [[ -e /opt/bin/sed && -L /opt/etc/passwd ]]; then # Try to ensure Entware is active first. /opt/bin/sed -r 's/\x1b\[[0-9;]*m//g' <<< "${1:-}" # https://superuser.com/a/380778 else printf '%s' "${1:-}" # Can't strip, so pass thru original message unaltered. @@ -11055,20 +11566,20 @@ StripANSICodes() UpdateColourisation() { - if [[ -e /opt/bin/sed && -L /opt/etc/passwd ]]; then # Try to ensure Entware is active before using this utility. - colourful=true - SendParentChangeEnv 'colourful=true' + if [[ -e /opt/bin/sed && -L /opt/etc/passwd ]]; then # Try to ensure Entware is active first. + AssignColourful + [[ $colourful = true ]] && SendParentChangeEnv 'colourful=true' else - colourful=false - SendParentChangeEnv 'colourful=false' + AssignColourful + [[ $colourful = false ]] && SendParentChangeEnv 'colourful=false' fi - } 2>/dev/null + } Cursor:Hide() { - [[ $opts_verbose = false ]] && printf '\033[?25l' + [[ $useropt_verbose = false ]] && printf '\033[?25l' } @@ -11082,7 +11593,7 @@ Cursor:Show() Keystrokes:Hide() { - [[ $opts_verbose = false && -e $GNU_STTY_CMD && -t 0 ]] && $GNU_STTY_CMD '-echo' + [[ $useropt_verbose = false && -e $GNU_STTY_CMD && -t 0 ]] && $GNU_STTY_CMD '-echo' } @@ -11163,7 +11674,7 @@ sleep() [[ ${n//.} -eq 0 ]] && n=1 - if [[ -e $GNU_SLEEP_CMD && -L /opt/etc/passwd ]]; then # Try to ensure Entware is active before using this utility. + if [[ -e $GNU_SLEEP_CMD && -L /opt/etc/passwd ]]; then # Try to ensure Entware is active first. $GNU_SLEEP_CMD "$n" elif [[ $DECIMAL_SLEEP_SECONDS_SUPPORTED = false ]]; then $SLEEP_CMD "$((${n%.*}+1))" # Ensure decimal seconds are rounded-up to next integer. @@ -11180,9 +11691,10 @@ Objects:Load() # Ensure `objects` in the local cache is up-to-date, then source it. - [[ ${objects_loaded:=false} = true ]] && return + [[ ${objects_loaded:=false} = false ]] || return 0 Func:Init + Lists:Load if [[ ! -e $PWD/dont-refresh-objects ]]; then if [[ ! -e $OBJECTS_PATHFILE ]] || ! IsThisFileRecent "$OBJECTS_PATHFILE" "$FILE_CHANGE_THRESHOLD_MINUTES"; then @@ -11196,15 +11708,18 @@ Objects:Load() if [[ ! -e $OBJECTS_PATHFILE ]]; then ShowAsAbort 'objects missing' + Func:Exit 1; exit fi ShowAsProc 'loading objects' + . "$OBJECTS_PATHFILE" objects_loaded=true readonly OBJECTS_VER DebugVar OBJECTS_VER + Func:Exit } @@ -11214,9 +11729,10 @@ Packages:Load() # Ensure `packages` in the local cache is up-to-date, then source it. - [[ ${packages_loaded:=false} = true ]] && return + [[ ${packages_loaded:=false} = false ]] || return 0 Func:Init + Objects:Load if [[ ! -e $PWD/dont-refresh-packages ]]; then if [[ ! -e $PACKAGES_PATHFILE ]] || ! IsThisFileRecent "$PACKAGES_PATHFILE" "$FILE_CHANGE_THRESHOLD_MINUTES"; then @@ -11230,10 +11746,12 @@ Packages:Load() if [[ ! -e $PACKAGES_PATHFILE ]]; then ShowAsAbort 'QPKG list missing' + Func:Exit 1; exit fi ShowAsProc 'loading QPKG list' + . "$PACKAGES_PATHFILE" packages_loaded=true @@ -11274,6 +11792,7 @@ Packages:Load() DebugVar PACKAGES_VER QPKGs-SCall:Add "${QPKG_NAME[*]}" QPKGs.IndependentDependent:Build + Func:Exit } diff --git a/workshop/ideas.txt b/workshop/ideas.txt index c24b30fec..80320e16e 100644 --- a/workshop/ideas.txt +++ b/workshop/ideas.txt @@ -1,3 +1,6 @@ +* • These actions were skipped (and why): + download Entware: (existing file 'Entware_1.03a_std.qpkg' checksum correct). + * There should be distinct argument parsers for: - script management functions: 'debug' (dbug) @@ -16,8 +19,10 @@ - (and generate basic reports with no heading). - 'show': - results, dependencies (d), backups, packages (p), repositories (r), log, last, + results, dependencies (d), backups, packages (p), repositories (r), - (and generate full reports). + log, last, + - (and generate dull reports). - the usual QPKG actions: - activate, status (s), (and generate full reports). diff --git a/workshop/issues.txt b/workshop/issues.txt index cfdc63b7f..49ff10f10 100644 --- a/workshop/issues.txt +++ b/workshop/issues.txt @@ -1,13 +1,77 @@ Observed issues: - * don't show title when running 'follow' action. - [~] # sherpa follow unstable - sherpa v240211-stable - - done: now following the 'unstable' branch. - done: package cache cleared. - done: reports cleared. - done: logs cleared. + * 'check' didn't show action results afterward. + ------------------------------------------------------------------------------------------------------------------------- + [/share/Public] # ./sherpa-manager.source c + sherpa v-unstable + done: actions complete. + + ------------------------------------------------------------------------------------------------------------------------- + + * QDK not installing: + ------------------------------------------------------------------------------------------------------------------------- + [/share/Public] # ./sherpa-manager.source add qdk + sherpa v-unstable + + done: actions complete. + + • These actions were skipped: + download QDK: existing file 'QDK_2.3.13.zip' checksum correct. + install QDK: cache file 'QDK_2.3.13.qpkg' has incorrect checksum. + ------------------------------------------------------------------------------------------------------------------------- + + * Extra linespace before report: + ------------------------------------------------------------------------------------------------------------------------- + [/share/Public] # ./sherpa-manager.source d + sherpa v-unstable + + + • Package dependencies are automatically installed/started/stopped/restarted as-required. + + • Requirements shown in "* orange" prevent the package being installed. + + • Those shown in "! red" are preventing the package from working correctly. + + • QPKG name: • dependencies: • installed? • enabled? • min RAM: • min OS: • max OS: • supported arch? + ClamAV - Entware false N/A 1,572,864kB 4.0.0 none true + Deluge-server - Entware false N/A none 4.0.0 none true + Deluge-web - Entware, Deluge-server false N/A none 4.0.0 none true + duf - none true true none 4.0.0 none true + Entware - none true true none 4.0.0 none true + Glances - Entware false N/A none 4.0.0 none true + Headphones - Entware false N/A none 4.0.0 none true + HideThatBanner - none false N/A none 4.0.0 none true + IncreaseTimeouts - none true true none 4.3.0 none true + inxi - Entware false N/A none 4.0.0 none true + Kapowarr - Entware false N/A none 4.0.0 none true + LazyLibrarian - Entware false N/A none 4.0.0 none true + OLidarr - none false N/A none 4.4.1 none true + OMedusa - Entware false N/A none 4.0.0 none true + Mylar3 - Entware false N/A none 4.0.0 none true + NZBGet - Entware false N/A none 4.0.0 none true + NZBHydra2 - Entware false N/A none 4.0.0 none true + nzbToMedia - Entware false N/A none 4.0.0 none true + OliveTin - none false N/A none 4.0.0 none true + Par2 - none false N/A none 4.2.5 none * false + Par2turbo - none ! missing true none 4.2.5 none true + pyLoad - Entware false N/A none 4.0.0 none true + OqBittorrent - Entware false N/A none 4.0.0 none true + QDK - none false N/A none 4.0.0 none true + OReadarr - none false N/A none 4.4.1 none true + RunLast - none false N/A none 4.0.0 none true + SABnzbd - Entware, Par2turbo, Unrar true true none 4.0.0 none true + sha3sum - none false N/A none 4.0.0 none * false + sherpa - none true true none 4.0.0 none true + OSickGear - Entware false N/A none 4.0.0 none true + OSonarr - none false N/A none 4.4.1 none true + SortMyQPKGs - none false N/A none 4.0.0 none true + OTautulli - Entware false N/A none 4.0.0 none true + OTransmission - Entware false N/A none 4.0.0 none true + Unrar - none ! missing true none 4.3.3 none true + OWatcher3 - Entware false N/A none 4.0.0 none true + WebSSH - Entware false N/A none 4.0.0 none true + OWhisparr - none false N/A none 4.4.1 none true + ------------------------------------------------------------------------------------------------------------------------- * 'sherpa start inactive' fails to find any inactive packages. - Must get 'status' of each package first. diff --git a/workshop/potential-packages/new-packages.txt b/workshop/potential-packages/new-packages.txt index 24547c87a..24e86061f 100644 --- a/workshop/potential-packages/new-packages.txt +++ b/workshop/potential-packages/new-packages.txt @@ -1,3 +1,6 @@ +* bitmagnet? + - https://bitmagnet.io + * Tdarr? - https://docs.tdarr.io/docs/installation/windows-linux-macos