2022-06-18 20:04:26 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2022-06-18 20:35:04 +00:00
|
|
|
#set -o errexit -o pipefail
|
2022-06-18 20:04:26 +00:00
|
|
|
|
|
|
|
# Commit changes to Git.
|
|
|
|
: "${GIT_COMMIT_PACKAGES:=false}"
|
|
|
|
# Push changes to remote.
|
|
|
|
: "${GIT_PUSH_PACKAGES:=false}"
|
|
|
|
|
|
|
|
SCRIPT_DIR="$(realpath "$(dirname "$0")")"
|
|
|
|
SRC_DIR="$(realpath "$(dirname "${SCRIPT_DIR}")")"
|
|
|
|
TMP_DIR="$(mktemp -d -t medzik-aur-XXXX)"
|
|
|
|
|
|
|
|
mkdir "${TMP_DIR}/aur"
|
|
|
|
|
|
|
|
source "${SCRIPT_DIR}/lib/parse-conf.sh"
|
|
|
|
|
|
|
|
echo '::group::Adding aur.archlinux.org to known hosts'
|
|
|
|
ssh-keyscan -v -t "rsa,dsa,ecdsa,ed25519" aur.archlinux.org >>~/.ssh/known_hosts
|
|
|
|
echo '::endgroup::'
|
|
|
|
|
|
|
|
echo '::group::Importing private key'
|
|
|
|
echo "${SSH_PRIVATE_KEY}" >~/.ssh/aur
|
|
|
|
chmod -vR 600 ~/.ssh/aur*
|
|
|
|
ssh-keygen -vy -f ~/.ssh/aur >~/.ssh/aur.pub
|
|
|
|
echo '::endgroup::'
|
|
|
|
|
|
|
|
echo '::group::Checksums of SSH keys'
|
|
|
|
sha512sum ~/.ssh/aur ~/.ssh/aur.pub
|
|
|
|
echo '::endgroup::'
|
|
|
|
|
|
|
|
echo '::group::Configuring Git'
|
|
|
|
git config --global user.name "${COMMIT_USER}"
|
|
|
|
git config --global user.email "${COMMIT_EMAIL}"
|
|
|
|
echo '::endgroup::'
|
|
|
|
|
2022-06-18 20:35:04 +00:00
|
|
|
push-aur() {
|
2022-06-18 20:04:26 +00:00
|
|
|
local pkgdir="${1}"
|
|
|
|
local pkgname="$(basename ${pkgdir})"
|
|
|
|
|
|
|
|
if [ ! -f "${pkgdir}/built.conf" ]
|
|
|
|
then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -f "${pkgdir}/PKGBUILD" ]
|
|
|
|
then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f "${pkgdir}/built.conf" ]
|
|
|
|
then
|
|
|
|
eval "$(parse-conf ${pkgdir})"
|
|
|
|
|
|
|
|
cd "${SRC_DIR}"
|
2023-01-20 17:02:50 +00:00
|
|
|
|
|
|
|
sudo chown -R $(whoami) .
|
2022-06-18 20:04:26 +00:00
|
|
|
|
|
|
|
if [ -n "${AUR_PUSH}" ]
|
|
|
|
then
|
2022-06-18 20:35:04 +00:00
|
|
|
echo "==> ${pkgname}"
|
|
|
|
|
2023-01-20 17:01:00 +00:00
|
|
|
echo '::group::Cloning AUR package into aur-repo'
|
|
|
|
git clone -v "ssh://aur@aur.archlinux.org/${pkgname}.git" aur-repo
|
2022-06-18 20:04:26 +00:00
|
|
|
echo '::endgroup::'
|
|
|
|
|
2023-01-20 17:01:00 +00:00
|
|
|
echo '::group::Copying files into aur-repo'
|
|
|
|
cp -r "${pkgdir}"/* aur-repo
|
|
|
|
rm -rf aur-repo/built.conf
|
2022-06-18 20:04:26 +00:00
|
|
|
echo '::endgroup::'
|
|
|
|
|
|
|
|
echo '::group::Generating .SRCINFO'
|
2023-01-20 17:01:00 +00:00
|
|
|
cd aur-repo
|
2022-06-18 20:04:26 +00:00
|
|
|
makepkg --printsrcinfo >.SRCINFO
|
|
|
|
echo '::endgroup::'
|
|
|
|
|
|
|
|
echo '::group::Committing files to the repository'
|
2023-01-20 17:01:00 +00:00
|
|
|
git add .
|
2022-06-18 20:04:26 +00:00
|
|
|
git commit -m "sync with built-aur"
|
|
|
|
echo '::endgroup::'
|
|
|
|
|
|
|
|
echo '::group::Push package to AUR'
|
|
|
|
git push -v origin master
|
|
|
|
echo '::endgroup::'
|
2022-06-18 20:35:04 +00:00
|
|
|
|
|
|
|
echo '::group::Cleanup'
|
2023-01-20 17:01:00 +00:00
|
|
|
cd ..
|
|
|
|
rm -rf aur-repo
|
2022-06-18 20:35:04 +00:00
|
|
|
echo '::endgroup::'
|
2022-06-18 20:04:26 +00:00
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
for pkgdir in ./packages/* ./long-built/*
|
|
|
|
do
|
2022-06-18 20:35:04 +00:00
|
|
|
echo "==> Running: $(basename ${pkgdir})"
|
|
|
|
push-aur "${pkgdir}" &
|
|
|
|
wait
|
2022-06-18 20:04:26 +00:00
|
|
|
done
|