aboutsummaryrefslogtreecommitdiff
path: root/build_all.sh
diff options
context:
space:
mode:
authorKunoiSayami <[email protected]>2021-10-24 19:35:07 +0800
committerKunoiSayami <[email protected]>2021-10-24 19:35:07 +0800
commitdb9a275c6eb3c4847c4b012e6f4f22f474f6c0c0 (patch)
tree7b46c1f666c24d3d0fbc7d2e8be9e8175e65b840 /build_all.sh
parentde5b73066cd669f91f7abddc9813a696de23cc88 (diff)
feat(script): Support increment build
Signed-off-by: KunoiSayami <[email protected]>
Diffstat (limited to 'build_all.sh')
-rwxr-xr-xbuild_all.sh42
1 files changed, 33 insertions, 9 deletions
diff --git a/build_all.sh b/build_all.sh
index 7f22e11..ffa0b3e 100755
--- a/build_all.sh
+++ b/build_all.sh
@@ -1,32 +1,56 @@
#!/bin/bash
+
+REPO_BASE_NAME="kunoisayami"
ARCH=$(uname -m)
+PKGBUILD_DIRECTORY_BASE="kunoisayami"
PKGDEST="${PWD}/packages/$ARCH"
SRCDEST="${PWD}/build"
-CONFDEST="${PWD}/makepkg.conf"
-REPO_DEST="${PWD}/packages/$ARCH/kunoisayami.db.tar.xz"
+REPO_DEST="${PWD}/packages/$ARCH/$REPO_BASE_NAME.db.tar.xz"
REPO_PENDING="${PWD}/packages/$ARCH/PENDING"
+REPO_DIFF="${PWD}/packages/$ARCH/DIFF"
+
+touch "$REPO_DIFF"
touch "$REPO_PENDING"
-pushd kunoisayami
-for folder in */ ; do
- PACKAGE_NAME=$(printf $folder | sed 's/.$//')
- pushd "$folder"
+
+if [ $# -gt 0 ] && [ "$1" = "--all" ]; then
+ ls $PKGBUILD_DIRECTORY_BASE > "$REPO_DIFF"
+else
+ git diff --name-only HEAD^ | while read line; do
+ if [[ $line =~ $PKGBUILD_DIRECTORY_BASE ]]; then
+ echo "$line" | cut -d'/' -f2 >> "$REPO_DIFF"
+ fi
+ done
+ cp "$REPO_DIFF" "${REPO_DIFF}_tmp"
+ sort "${REPO_DIFF}_tmp" | uniq -u > "$REPO_DIFF"
+ rm -rf "${REPO_DIFF}_tmp"
+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
SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF=$CONFDEST makepkg --clean
if [ $? == 0 ]; then
echo "$PACKAGE_NAME" >> "$REPO_PENDING"
fi
#cp "$PACKAGE_NAME"* ../../../packages/
popd
-done
+done < "$REPO_DIFF"
+
popd
+
while read PACKAGE_NAME; do
LATEST=$(ls -t "$PKGDEST/$PACKAGE_NAME"* | grep -v ".sig" | head -n 1 | cut -d' ' -f1)
- repo-add "$REPO_DEST" "$LATEST" -s -v -R
+ repo-add "$REPO_DEST" "$LATEST" -s -v -R -k 4A0F0C8BC709ACA4341767FB243975C8DB9656B9
done < "$REPO_PENDING"
+
echo $(date +%s) > "$PKGDEST/LASTBUILD"
+
unset PACKAGE_NAME
unset PKGDEST
unset SRCDEST
-unset CONFDEST
unset REPO_DEST
rm -rf "$REPO_PENDING"
+rm -rf "$REPO_DIFF"
unset REPO_PENDING