From 40e84259dd39e34095fae2aa8de74487225daa54 Mon Sep 17 00:00:00 2001 From: herkulessi Date: Thu, 30 Apr 2026 15:11:36 +0200 Subject: Remove Warning and add Warranty disclaiming license --- LICENSE | 13 +++++++++++ packagesync-ng | 66 ---------------------------------------------------- pkgsync-ng-nt | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 66 deletions(-) create mode 100644 LICENSE delete mode 100755 packagesync-ng create mode 100755 pkgsync-ng-nt diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d3061a3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Zero-Clause BSD +============= + +Permission to use, copy, modify, and/or distribute this software for +any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/packagesync-ng b/packagesync-ng deleted file mode 100755 index 664db99..0000000 --- a/packagesync-ng +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env bash - -echo "WARNING: This project will happily delete all your packages if you are not careful!" -echo "To Proceed acknowledge that you have read this by deleting the \`exit 77\` line in this script" -exit 77 - -PACKAGE_NAME=herk -PACKAGE_MAINTAINER="herk " - -set -eu -umask 077 -TEMPDIR=$(mktemp -d -t packagesync-XXXXXXXX) - -cd "$TEMPDIR" || exit 1 - -MISSING_DEPENDENCIES=() -command -v yq >/dev/null 2>&1 || MISSING_DEPENDENCIES+=(yq) -command -v equivs-build >/dev/null 2>&1 || MISSING_DEPENDENCIES+=(equivs) -command -v stat >/dev/null 2>&1 || MISSING_DEPENDENCIES+=(coreutils) -command -v mktemp >/dev/null 2>&1 || MISSING_DEPENDENCIES+=(coreutils) - -set +u -if [ "${#MISSING_DEPENDENCIES}" -gt 0 ]; then - echo "Installing missing dependencies:" "${MISSING_DEPENDENCIES[@]}" ... - apt-get install --no-install-recommends -yq "${MISSING_DEPENDENCIES[@]}" - echo "Done installing dependencies." -fi -set -u - -OLD_VERSION=$(dpkg-query --showformat='${Version}' --show "$PACKAGE_NAME" 2>/dev/null || echo 0) -NEW_VERSION=$(stat -c %Y /etc/packages.yaml) - -if [ "$OLD_VERSION" -ge "$NEW_VERSION" ]; then - cd / - rm -rf "$TEMPDIR" - apt-mark manual "$PACKAGE_NAME" - apt-mark showmanual | grep -v "^${PACKAGE_NAME}$" | xargs apt-mark auto || true # ignore empty list - apt-get autoremove --purge -yq - exit 0 -fi - -cat > "$PACKAGE_NAME" << EOF -Section: misc -Priority: optional -Standards-Version: 3.9.2 - -Package: $PACKAGE_NAME -Version: $NEW_VERSION -Maintainer: $PACKAGE_MAINTAINER -Depends: $(< /etc/packages.yaml yq -r '.install | to_entries | map(.value) | add | map(tostring) | join(", ")'), apt, coreutils, equivs, findutils, yq -Conflicts: $(< /etc/packages.yaml yq -r '.remove | to_entries | map(.value) | add | map(tostring) | join(", ")') -Description: Metapackage for all needed packages. - This is a dummy package, depending on other packages to make Package Management easier. -EOF - -equivs-build "$PACKAGE_NAME" - -apt-get install -yq --no-install-recommends ./${PACKAGE_NAME}_${NEW_VERSION}_all.deb - -apt-mark manual "$PACKAGE_NAME" -apt-mark showmanual | grep -v "^${PACKAGE_NAME}$" | xargs apt-mark auto || true # ignore empty list - -apt-get autoremove -yq --purge - -cd / -rm -rf "$TEMPDIR" diff --git a/pkgsync-ng-nt b/pkgsync-ng-nt new file mode 100755 index 0000000..1eb8567 --- /dev/null +++ b/pkgsync-ng-nt @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +# Permission to use, copy, modify, and/or distribute this software for +# any purpose with or without fee is hereby granted. +# +# THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL +# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +# FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +# AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +PACKAGE_NAME=herk +PACKAGE_MAINTAINER="herk " + +set -eu +umask 077 +TEMPDIR=$(mktemp -d -t packagesync-XXXXXXXX) + +cd "$TEMPDIR" || exit 1 + +MISSING_DEPENDENCIES=() +command -v yq >/dev/null 2>&1 || MISSING_DEPENDENCIES+=(yq) +command -v equivs-build >/dev/null 2>&1 || MISSING_DEPENDENCIES+=(equivs) +command -v stat >/dev/null 2>&1 || MISSING_DEPENDENCIES+=(coreutils) +command -v mktemp >/dev/null 2>&1 || MISSING_DEPENDENCIES+=(coreutils) + +set +u +if [ "${#MISSING_DEPENDENCIES}" -gt 0 ]; then + echo "Installing missing dependencies:" "${MISSING_DEPENDENCIES[@]}" ... + apt-get install --no-install-recommends -yq "${MISSING_DEPENDENCIES[@]}" + echo "Done installing dependencies." +fi +set -u + +OLD_VERSION=$(dpkg-query --showformat='${Version}' --show "$PACKAGE_NAME" 2>/dev/null || echo 0) +NEW_VERSION=$(stat -c %Y /etc/packages.yaml) + +if [ "$OLD_VERSION" -ge "$NEW_VERSION" ]; then + cd / + rm -rf "$TEMPDIR" + apt-mark manual "$PACKAGE_NAME" + apt-mark showmanual | grep -v "^${PACKAGE_NAME}$" | xargs apt-mark auto || true # ignore empty list + apt-get autoremove --purge -yq + exit 0 +fi + +cat > "$PACKAGE_NAME" << EOF +Section: misc +Priority: optional +Standards-Version: 3.9.2 + +Package: $PACKAGE_NAME +Version: $NEW_VERSION +Maintainer: $PACKAGE_MAINTAINER +Depends: $(< /etc/packages.yaml yq -r '.install | to_entries | map(.value) | add | map(tostring) | join(", ")'), apt, coreutils, equivs, findutils, yq +Conflicts: $(< /etc/packages.yaml yq -r '.remove | to_entries | map(.value) | add | map(tostring) | join(", ")') +Description: Metapackage for all needed packages. + This is a dummy package, depending on other packages to make Package Management easier. +EOF + +equivs-build "$PACKAGE_NAME" + +apt-get install -yq --no-install-recommends ./${PACKAGE_NAME}_${NEW_VERSION}_all.deb + +apt-mark manual "$PACKAGE_NAME" +apt-mark showmanual | grep -v "^${PACKAGE_NAME}$" | xargs apt-mark auto || true # ignore empty list + +apt-get autoremove -yq --purge + +cd / +rm -rf "$TEMPDIR" -- cgit v1.2.3