mirror of
https://github.com/endeavouros-team/eos-pkgbuild-setup.git
synced 2026-06-13 01:54:36 +00:00
81 lines
2.6 KiB
Bash
Executable File
81 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Download AUR packages from the experimental AUR github repo
|
|
# and store them under the current folder.
|
|
|
|
echo2() { echo -e "$@" >&2 ; }
|
|
DIE() { echo2 "$progname: error: $1"; Usage; exit 1; }
|
|
WARN() { echo2 " -> $progname: warning: $1"; }
|
|
Usage() { echo2 "Usage: $progname names-of-AUR-packages"; }
|
|
Verbose() { [ $verbose = yes ] && echo2 "$@" ; }
|
|
|
|
FromRepo() { local -r url="$1"; grep "url = $url" "$pkg_name/.git/config" &> /dev/null; }
|
|
|
|
Default() {
|
|
local -r var="$1"
|
|
local -r val="$2"
|
|
[ "$var" = "$val" ] && echo " (default)"
|
|
}
|
|
|
|
Main() {
|
|
local -r progname=${0##*/}
|
|
local -r verbose_def=no
|
|
local verbose=$verbose_def
|
|
local pkg_names=()
|
|
|
|
[ -w "$PWD" ] || DIE "cannot write to $PWD"
|
|
|
|
# Handle options and save package names
|
|
while true ; do
|
|
case "$1" in
|
|
# handle options
|
|
-h | --help)
|
|
cat <<EOF >&2
|
|
Usage: $progname [options] <aur-package-names>
|
|
Options: -h, --help This help.
|
|
-v, --verbose Provide some progress output$(Default $verbose_def yes).
|
|
-q, --quiet No progress output$( Default $verbose_def no).
|
|
EOF
|
|
exit 0
|
|
;;
|
|
-v | --verbose) verbose=yes ;;
|
|
-q | --quiet) verbose=no ;;
|
|
-*) ;; # ignore unknown options
|
|
|
|
"") break ;; # stop loop
|
|
*) pkg_names+=("$1") ;; # save pkg names
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ "$pkg_names" ] ; then
|
|
local -r REPOURL=https://github.com/archlinux/aur.git
|
|
local -r AURURL=https://aur.archlinux.org
|
|
local pkg_name
|
|
for pkg_name in "${pkg_names[@]}" ; do
|
|
echo -n " $pkg_name:|"
|
|
if [ -e "$pkg_name" ] ; then
|
|
if FromRepo "$REPOURL" ; then
|
|
echo -n "(git pull)|"
|
|
pushd "./$pkg_name" >/dev/null
|
|
git pull
|
|
popd >/dev/null
|
|
continue
|
|
elif FromRepo "$AURURL/$pkg_name\.git" ; then
|
|
rm -rf "$pkg_name" # $pkg_name was fetched by yay/paru, replace it
|
|
else
|
|
WARN "$pkg_name file exists, skipping $pkg_name"
|
|
continue
|
|
fi
|
|
fi
|
|
echo "(git clone)|"
|
|
timeout 20 git clone --branch "$pkg_name" --single-branch $REPOURL "$pkg_name" &>/dev/null \
|
|
|| { WARN "fetching $pkg_name failed"; sleep 1; }
|
|
done | column -t -s'|'
|
|
else
|
|
DIE "no AUR package name given"
|
|
fi
|
|
}
|
|
|
|
Main "$@"
|