extras/bash: script to clean up https://packagecloud.io/fdio/attic 87/35687/1
authorDave Wallace <dwallacelf@gmail.com>
Thu, 17 Mar 2022 01:09:49 +0000 (21:09 -0400)
committerDave Wallace <dwallacelf@gmail.com>
Thu, 17 Mar 2022 01:09:49 +0000 (21:09 -0400)
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Iec595af163e201689a1e07e81daf5ed9519888b8

.gitignore
extras/bash/packagecloud_attic_cleanup.sh [new file with mode: 0755]

index 33ea009..a3eb886 100644 (file)
@@ -21,3 +21,6 @@ target/
 
 # Python Virtualenv
 venv/
+
+# VSCode
+.vscode
diff --git a/extras/bash/packagecloud_attic_cleanup.sh b/extras/bash/packagecloud_attic_cleanup.sh
new file mode 100755 (executable)
index 0000000..6312510
--- /dev/null
@@ -0,0 +1,29 @@
+#! /bin/bash
+
+set -euo pipefail
+
+attic_repo='fdio/attic'
+packages_json='/tmp/pkgs.json'
+packagecloud_user="$HOME/.ssh/.packagecloud.user"
+# shellcheck disable=SC2064
+trap "rm -f $packages_json" SIGHUP SIGINT SIGQUIT EXIT
+
+get_more_packages() {
+    rm -f $packages_json
+    echo "Retrieving packages from packagecloud.io/$attic_repo"
+    # shellcheck disable=SC2086
+    curl -s https://"$(cat $packagecloud_user)"/api/v1/repos/$attic_repo/packages.json | jq . > $packages_json
+}
+
+get_more_packages
+while [ -n "$(cat $packages_json)" ] ; do
+    for pkg in $(cat $packages_json | jq '.[].destroy_url' | xargs) ; do
+        # shellcheck disable=SC2086
+        echo "Deleting $(basename $pkg)"
+        # shellcheck disable=SC2086
+        curl -sX DELETE "https://$(cat $packagecloud_user)$pkg" >& /dev/null
+    done
+    echo
+    get_more_packages
+done
+echo "No more packages in '$attic_repo'!"