diff options
| author | KunoiSayami <[email protected]> | 2021-10-24 19:35:07 +0800 |
|---|---|---|
| committer | KunoiSayami <[email protected]> | 2021-10-24 19:35:07 +0800 |
| commit | db9a275c6eb3c4847c4b012e6f4f22f474f6c0c0 (patch) | |
| tree | 7b46c1f666c24d3d0fbc7d2e8be9e8175e65b840 | |
| parent | de5b73066cd669f91f7abddc9813a696de23cc88 (diff) | |
feat(script): Support increment build
Signed-off-by: KunoiSayami <[email protected]>
| -rwxr-xr-x | build_all.sh | 42 | ||||
| -rw-r--r-- | packages/x86_64/.gitignore | 1 |
2 files changed, 34 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 diff --git a/packages/x86_64/.gitignore b/packages/x86_64/.gitignore index 2f81c25..ba3ace8 100644 --- a/packages/x86_64/.gitignore +++ b/packages/x86_64/.gitignore @@ -3,3 +3,4 @@ *.sig *.db *.files +LAST*
\ No newline at end of file |
