|
|
|
@ -2,13 +2,19 @@ |
|
|
|
|
# (c) 2014-2015 Taeyeon Mori |
|
|
|
|
# vim: ft=sh:ts=2:sw=2:et |
|
|
|
|
|
|
|
|
|
AUR_DEFAULT_HOST="https://aur.archlinux.org/" |
|
|
|
|
|
|
|
|
|
# Load libraries and configuraion |
|
|
|
|
source "$DOTFILES/lib/libzsh-utils.zsh" |
|
|
|
|
source "$DOTFILES/etc/aur.conf" |
|
|
|
|
|
|
|
|
|
function throw { |
|
|
|
|
err "$2" |
|
|
|
|
exit $1 |
|
|
|
|
clean_exit $1 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function clean_exit { |
|
|
|
|
exit ${1-0} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -20,7 +26,7 @@ makepkg_args=() |
|
|
|
|
aur_get=aur_get_aur4 |
|
|
|
|
DL_ONLY=false |
|
|
|
|
ASK=false |
|
|
|
|
AUR_HOST="https://aur.archlinux.org/" |
|
|
|
|
AUR_HOST="$AUR_DEFAULT_HOST" |
|
|
|
|
ADD_UPDATES=false |
|
|
|
|
RECURSE_DEPS=false |
|
|
|
|
NEED_COWER=false |
|
|
|
@ -89,6 +95,7 @@ process_arg() { |
|
|
|
|
echo " Use a different AUR server. default: https://aur.archlinux.org/" |
|
|
|
|
echo " --old-aur Use the old (non-git) AUR methods" |
|
|
|
|
echo " --ask Ask before installing packages (removes --noconfirm)" |
|
|
|
|
echo " --clean Clean up leaftover temporary files (of failed builds) and exit" |
|
|
|
|
echo |
|
|
|
|
echo "Useful makepkg options:" |
|
|
|
|
echo " -i Install package after building it" |
|
|
|
@ -99,6 +106,18 @@ process_arg() { |
|
|
|
|
echo " However, certain cower-only features are automatically enabled when cower is found." |
|
|
|
|
exit 0 |
|
|
|
|
;; |
|
|
|
|
--clean) |
|
|
|
|
local temp="${TMPDIR-/tmp}" |
|
|
|
|
for tmp in `find "$temp" -name 'aur.sh.*'`; do |
|
|
|
|
if [ -e "$tmp/aur.sh.running" ] && [ -e "/proc/${tmp%%.}" ]; then |
|
|
|
|
err "Cannot remove '$tmp', aur.sh instance seems to be running" |
|
|
|
|
else |
|
|
|
|
msg "Removing '$tmp'.." |
|
|
|
|
rm -rf "$tmp" |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
color 35 echo "Cleaned leftover temporary files." |
|
|
|
|
exit 0;; |
|
|
|
|
# Makepkg args |
|
|
|
|
--pkg|--key|--config) # These take an additional value |
|
|
|
|
_proxy_args=1 |
|
|
|
@ -124,12 +143,26 @@ for cx in "$@"; do |
|
|
|
|
esac |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
# Cower Detection |
|
|
|
|
USE_COWER=false |
|
|
|
|
|
|
|
|
|
if cower --version >/dev/null; then |
|
|
|
|
NEED_COWER=true # Auto-enable cower support if installed. |
|
|
|
|
USE_COWER=true # Auto-enable cower support if installed. |
|
|
|
|
elif $NEED_COWER; then |
|
|
|
|
throw 31 "Options requiring cower have been selected but cower was not found." |
|
|
|
|
else |
|
|
|
|
warn "Could not detect cower on the system. Not all features are available without it." |
|
|
|
|
warn "Could not detect cower on the system." |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ "$aur_get" != "aur_get_aur4" ] || [ "$AUR_HOST" != "$AUR_DEFAULT_HOST" ]; then |
|
|
|
|
USE_COWER=false |
|
|
|
|
$NEED_COWER && |
|
|
|
|
throw 31 "--old-aur and --aur-host are currently not supported with cower features" || |
|
|
|
|
warn "Features depending on cower cannot be used with --old-aur and --aur-host. Disabling them." |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if ! $USE_COWER; then |
|
|
|
|
warn "Cower will not be used. Not all features are available without it." |
|
|
|
|
warn "Specifically, split packages cannot be detected without cower." |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
@ -162,12 +195,35 @@ aur_get_aur4() { |
|
|
|
|
# Print some info |
|
|
|
|
msg "[AUR] AURDIR=$AURDIR; PKGDEST=$PKGDEST" |
|
|
|
|
|
|
|
|
|
if $ADD_UPDATES; then |
|
|
|
|
[ -n "$packages" ] && throw 31 "You cannot specify package names when using --update" |
|
|
|
|
OFS="$IFS" |
|
|
|
|
IFS=$'\n' |
|
|
|
|
for update in `cower -u`; do |
|
|
|
|
packages=("${packages[@]}" "`echo $update | cut -d' ' -f2`") |
|
|
|
|
done |
|
|
|
|
IFS="$OFS" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ -z "$packages" ]; then |
|
|
|
|
warn "[AUR] Nothing to do." |
|
|
|
|
exit 0 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Figure out build directory |
|
|
|
|
if ! $DL_ONLY && ! $LIST_ONLY; then |
|
|
|
|
tmpbuild=${TMPDIR-/tmp}/aur.sh.$$ |
|
|
|
|
build="${BUILDDIR:-$tmpbuild}" |
|
|
|
|
test -d "$build" || mkdir -p "$build" || throw 1 "Couldn't create build directory" |
|
|
|
|
|
|
|
|
|
clean_exit() { |
|
|
|
|
rm "$build/aur.sh.running" |
|
|
|
|
exit ${1-0} |
|
|
|
|
} |
|
|
|
|
trap clean_exit TERM |
|
|
|
|
trap clean_exit INT |
|
|
|
|
touch "$build/aur.sh.running" |
|
|
|
|
|
|
|
|
|
test "$build" = "$PWD" || \ |
|
|
|
|
msg "[AUR] Working in $build." |
|
|
|
|
msg "[AUR] Building packages: $packages" |
|
|
|
@ -180,16 +236,6 @@ if ! $DL_ONLY && ! $LIST_ONLY; then |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if $ADD_UPDATES; then |
|
|
|
|
[ -n "$packages" ] && throw 31 "You cannot specify package names when using --update" |
|
|
|
|
OFS="$IFS" |
|
|
|
|
IFS=$'\n' |
|
|
|
|
for update in `cower -u`; do |
|
|
|
|
packages=("${packages[@]}" "`echo $update | cut -d' ' -f1`") |
|
|
|
|
done |
|
|
|
|
IFS="$OFS" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AFFECTED_PKGS=() |
|
|
|
|
|
|
|
|
@ -198,7 +244,7 @@ build_package() { |
|
|
|
|
local p="$1" # package name |
|
|
|
|
local COWER_INFO="$2" |
|
|
|
|
|
|
|
|
|
if $NEED_COWER; then |
|
|
|
|
if $USE_COWER; then |
|
|
|
|
[ -z "$COWER_INFO" ] && COWER_INFO=`cower -i $p` |
|
|
|
|
|
|
|
|
|
info_grep() { |
|
|
|
@ -207,8 +253,8 @@ build_package() { |
|
|
|
|
|
|
|
|
|
local PACKBASE=`info_grep PackageBase | sed -e 's/^\s*//' -e 's/\s*$//'` |
|
|
|
|
if [ -n "$PACKBASE" ]; then |
|
|
|
|
color 35 echo "$p: Is a split package. Selecting base package '$PACKBASE' instead." |
|
|
|
|
warn "Operations on specific sub-packages require the base package to be specified along with --pkg." |
|
|
|
|
color 35 echo "[AUR] $p: Is a split package. Selecting base package '$PACKBASE' instead." |
|
|
|
|
warn "[AUR] Operations on specific sub-packages require the base package to be specified along with --pkg." |
|
|
|
|
build_package "$PACKBASE" "`echo "$COWER_INFO" | grep -v PackageBase`" |
|
|
|
|
return $? |
|
|
|
|
fi |
|
|
|
@ -217,7 +263,7 @@ build_package() { |
|
|
|
|
if $RECURSE_DEPS; then |
|
|
|
|
for dep in `echo $DEPENDS`; do |
|
|
|
|
if ! pacman -Qi "$dep" >/dev/null 2>&1 && cower -i "$dep" >/dev/null 2>&1; then # Check if it's an (un-installed) aur package |
|
|
|
|
color 35 echo "$p: Building AUR dependency '$dep'..." |
|
|
|
|
color 35 echo "[AUR] $p: Building AUR dependency '$dep'..." |
|
|
|
|
build_package "$dep" |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
@ -273,5 +319,6 @@ if ! $DL_ONLY && ! $LIST_ONLY; then |
|
|
|
|
[ "$build" = "$tmpbuild" ] && \ |
|
|
|
|
warn "[AUR] Removing temporary directory $tmpbuild" && \ |
|
|
|
|
rm -rf "$tmpbuild" |
|
|
|
|
clean_exit |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|