aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlista Kanjo2023-12-23 22:45:27 -0500
committerBlista Kanjo2023-12-23 22:45:27 -0500
commit06eb8998deae56e52d402e707db744686fcd394e (patch)
tree65b30f3f557c209042e775476608a818f7914e94
parent2c6259688ad159f4cff1c34d058def7090fb99bc (diff)
kj-gitbot: .local/bin/aria2pkg
-rwxr-xr-x.local/bin/aria2pkg60
1 files changed, 60 insertions, 0 deletions
diff --git a/.local/bin/aria2pkg b/.local/bin/aria2pkg
new file mode 100755
index 0000000..d2705de
--- /dev/null
+++ b/.local/bin/aria2pkg
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+check_aria2c_installed() {
+ if ! command -v aria2c >/dev/null 2>&1; then
+ echo "error: aria2c is not installed :( please install aria2c to use aria2pkg."
+ exit 1
+ fi
+}
+
+_base_url='https://aur.archlinux.org/cgit/aur.git/snapshot'
+
+get_url_function() {
+ _pkg="$1"
+ _url="${_base_url}/${_pkg}.tar.gz"
+
+ echo "$_url"
+}
+
+run_aria2pkg_function() {
+ _pkg="$(echo "$1" | tr -d '[:space:]')"
+ _url="$(get_url_function "$_pkg")"
+
+ aria2c "$_url"
+}
+
+aria2pkg_function() {
+ for _pkg in "$@"; do
+ run_aria2pkg_function "$_pkg" &
+ done
+ wait
+}
+
+usage_function() {
+ cat <<EOF
+Usage:
+ aria2pkg [-h|--help]
+ aria2pkg <pkg> <pkg>...
+
+Options:
+ -h, --help
+ print this help message
+EOF
+}
+
+check_aria2c_installed
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -*)
+ usage_function
+ exit 0
+ ;;
+ *)
+ aria2pkg_function "$@"
+ exit 0
+ ;;
+ esac
+done
+
+# vim: set filetype=sh foldmethod=marker foldlevel=0: