aboutsummaryrefslogtreecommitdiff
path: root/pkgbuild.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgbuild.sh')
-rwxr-xr-xpkgbuild.sh35
1 files changed, 23 insertions, 12 deletions
diff --git a/pkgbuild.sh b/pkgbuild.sh
index c7c3888..be9bd79 100755
--- a/pkgbuild.sh
+++ b/pkgbuild.sh
@@ -7,13 +7,12 @@ set -Eeuo pipefail
trap cleanup SIGINT SIGTERM ERR EXIT
cleanup() {
trap - SIGINT SIGTERM ERR EXIT
- unset PACKAGE_NAME
+ unset FOLDER_NAME
unset PKGDEST
unset SRCDEST
unset CONFDEST
unset REPO_DEST
rm -f "$TMPCONF"
- rm -f "$REPO_PENDING"
rm -f "$REPO_DIFF"
unset TMPCONF
unset REPO_PENDING
@@ -27,7 +26,6 @@ PKGBUILD_DIRECTORY_BASE="repo"
PKGDEST="${PWD}/packages/$ARCH"
SRCDEST="${PWD}/build"
CONFDEST="${PWD}/makepkg.d/makepkg.$ARCH.conf"
-REPO_PENDING="${PWD}/packages/$ARCH/PENDING"
REPO_DIFF="${PWD}/packages/$ARCH/DIFF"
TMPCONF=$(mktemp -t makepkg.$ARCH.conf.XXXXXXXXXX) || exit 1
@@ -35,7 +33,6 @@ cat "${PWD}/makepkg.d/makepkg.base.conf" > "$TMPCONF"
cat "$CONFDEST" >> "$TMPCONF"
touch "$REPO_DIFF"
-touch "$REPO_PENDING"
function get_diff_list {
git diff --name-only HEAD^ | while read line; do
@@ -61,24 +58,38 @@ fi
pushd $PKGBUILD_DIRECTORY_BASE || ( echo "Error, can't switch to pkgbuild directory" && exit 1 )
-while read PACKAGE_NAME ; do
- #PACKAGE_NAME=$(printf $folder | sed 's/.$//')
- pushd "$PACKAGE_NAME" || continue
+while read FOLDER_NAME ; do
+ pushd "$FOLDER_NAME" || continue
+ # Check PKGBUILD architecture
if ! ( pcregrep -M 'arch=\([^\)]*\)' PKGBUILD | grep -E "$ARCH|any" >/dev/null ); then
popd
continue
fi
- SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -s --asdeps --noconfirm --needed --noprogressbar
- echo "$PACKAGE_NAME" >> "$REPO_PENDING"
+
+ if [ -r ../.yaydeps/"$FOLDER_NAME" ]; then
+ while read YAYDEP ; do
+ if [ -d "../$YAYDEP" ]; then
+ pushd "../$YAYDEP"
+ SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -si --asdeps --noconfirm --needed --noprogressbar
+ popd
+ else
+ yay -S --noconfirm --needed --asdeps "$YAYDEP"
+ fi
+ done < ../.yaydeps/"$FOLDER_NAME"
+ fi
+
+ if [ -r ../.gpg_keys/"$FOLDER_NAME" ]; then
+ . ../.gpg_keys/"$FOLDER_NAME"
+ fi
+
+ SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -s --asdeps --noconfirm --needed --noprogressbar || echo "Skip $FOLDER_NAME"
popd
done < "$REPO_DIFF"
popd
if [ -z "${BUILD_ONLY+x}" ]; then
- ./repodb.sh < "$REPO_PENDING"
-else
- echo "Add package to database is skipped"
+ echo "This option is depreacted, this script isn't process repository database now"
fi
date +%s > "$PKGDEST/LASTBUILD"