diff options
| -rwxr-xr-x | .local/bin/aria2pkg | 60 |
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: |
