68 lines
1.9 KiB
Bash
Executable File
68 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
command_name="${1:-build}"
|
|
package_dir="${APKBUILD_DIR:-/work/packaging/alpine/local/seaweedfs}"
|
|
repo_name="${ALPINE_REPO_NAME:-local}"
|
|
arch="${ALPINE_ARCH:-x86_64}"
|
|
|
|
export CARCH="${CARCH:-$arch}"
|
|
export PACKAGER="${PACKAGER:-Joachim Schlöffel <me@joachim-schloeffel.com>}"
|
|
if [[ -n "${PACKAGER_PRIVKEY:-}" ]]; then
|
|
export PACKAGER_PRIVKEY
|
|
fi
|
|
|
|
git config --global --add safe.directory /work
|
|
mkdir -p /home/builder/.abuild /home/builder/packages "${package_dir}"
|
|
|
|
if [[ -n "${PACKAGER_PRIVKEY:-}" && ! -f "${PACKAGER_PRIVKEY}" ]]; then
|
|
abuild-keygen -a -n
|
|
elif ! compgen -G "/home/builder/.abuild/*.rsa" > /dev/null; then
|
|
abuild-keygen -a -n
|
|
fi
|
|
|
|
if [[ -z "${PACKAGER_PRIVKEY:-}" && -f /home/builder/.abuild/abuild.conf ]]; then
|
|
# shellcheck source=/dev/null
|
|
. /home/builder/.abuild/abuild.conf
|
|
fi
|
|
if [[ -n "${PACKAGER_PRIVKEY:-}" ]]; then
|
|
export PACKAGER_PRIVKEY
|
|
fi
|
|
|
|
if [[ -n "${PACKAGER_PRIVKEY:-}" && -f "${PACKAGER_PRIVKEY}.pub" ]]; then
|
|
doas cp "${PACKAGER_PRIVKEY}.pub" /etc/apk/keys/
|
|
elif compgen -G "/home/builder/.abuild/*.rsa.pub" > /dev/null; then
|
|
doas cp /home/builder/.abuild/*.rsa.pub /etc/apk/keys/
|
|
fi
|
|
|
|
case "${command_name}" in
|
|
build)
|
|
doas apk update
|
|
cd "${package_dir}"
|
|
abuild -r
|
|
mkdir -p "/home/builder/packages/${repo_name}/${arch}"
|
|
if [[ -n "${PACKAGER_PRIVKEY:-}" && -f "${PACKAGER_PRIVKEY}.pub" ]]; then
|
|
cp "${PACKAGER_PRIVKEY}.pub" "/home/builder/packages/${repo_name}/${arch}/"
|
|
elif compgen -G "/home/builder/.abuild/*.rsa.pub" > /dev/null; then
|
|
cp /home/builder/.abuild/*.rsa.pub "/home/builder/packages/${repo_name}/${arch}/"
|
|
fi
|
|
;;
|
|
checksum)
|
|
cd "${package_dir}"
|
|
abuild checksum
|
|
;;
|
|
lint)
|
|
cd "${package_dir}"
|
|
apkbuild-lint APKBUILD
|
|
;;
|
|
shell)
|
|
cd "${package_dir}"
|
|
exec bash
|
|
;;
|
|
*)
|
|
printf 'unknown command: %s\n' "${command_name}" >&2
|
|
printf 'usage: %s [build|checksum|lint|shell]\n' "$0" >&2
|
|
exit 2
|
|
;;
|
|
esac
|