arch-pkgs/.repo/build

86 lines
1.9 KiB
Text
Raw Normal View History

2021-07-22 03:46:19 +00:00
#!/bin/bash
set -Eeuo pipefail
RED=$(tput setaf 1)
BOLD=$(tput bold)
RESET=$(tput sgr0)
readonly RED BOLD RESET
traperr() {
s=$?
echo "$0: $BASH_COMMAND"
exit $s
}
trap traperr ERR
PACKAGES=("$@")
EXTRA_ARGS=()
REPOSITORY="grawlinson"
2021-07-22 03:46:19 +00:00
if [ ${#PACKAGES[@]} -eq 0 ]; then
echo "${BOLD}${RED}ERROR:${RESET}${BOLD} no packages specified${RESET}"
exit 1
fi
for package in "${PACKAGES[@]}"; do
(
# change to package directory
cd "$package" || exit 1
# capture output for parsing dependencies
makepkg_output=$(makepkg --printsrcinfo)
2021-11-25 06:40:59 +00:00
#
# cache various downloads
#
# rust - crates
if grep -q "depends = rust\|cargo" <<<"$makepkg_output"; then
EXTRA_ARGS+=(
--bind-rw /var/cache/cargo/git:/build/.cargo/git
--bind-rw /var/cache/cargo/registry:/build/.cargo/registry
)
fi
2021-11-25 06:40:59 +00:00
# go - modules
if grep -q "depends = go" <<<"$makepkg_output"; then
2022-06-18 00:54:15 +00:00
EXTRA_ARGS+=(
--bind-rw /var/cache/golang/pkg:/build/go/pkg
--bind-rw /var/cache/golang/build:/build/.cache/go-build
)
fi
2021-07-22 03:46:19 +00:00
2021-11-25 06:40:59 +00:00
# dart - packages
if grep -q "depends = dart" <<<"$makepkg_output"; then
EXTRA_ARGS+=(--bind-rw /var/cache/dartlang:/build/.pub-cache)
fi
2022-01-04 20:11:14 +00:00
# javascript - npm/yarn/pkg
if grep -q "depends = npm\|yarn\|nodejs" <<<"$makepkg_output"; then
EXTRA_ARGS+=(
--bind-rw /var/cache/javascript/npm:/build/.npm
--bind-rw /var/cache/javascript/pkg-cache:/build/.pkg-cache
2022-06-17 07:09:47 +00:00
--bind-rw /var/cache/javascript/yarn:/build/.cache/yarn
2022-01-04 20:11:14 +00:00
)
fi
2021-07-22 03:46:19 +00:00
# build signed package in chroot & add to local repo
aur build \
--chroot \
--gpg-sign \
--remove \
--force \
--database="$REPOSITORY" \
--makepkg-conf="/etc/aurutils/makepkg-$REPOSITORY.conf" \
"${EXTRA_ARGS[@]}"
2021-10-29 22:34:38 +00:00
# reset EXTRA_ARGS
EXTRA_ARGS=()
2021-07-22 03:46:19 +00:00
)
done
exit 0
# vim: set ts=2 sw=2 et