#!/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 }" 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) 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