summaryrefslogtreecommitdiff
path: root/build.sh
blob: d111ea344eccb6c6e0e8248d45e9fb590ccdca0b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env bash

set -e

BUILD_DIR=$(pwd)/.dist/build
SRC_DIR=$(pwd)/.dist/src
LONGKEY="4A0E47583568E4B11B5C2559BBA33017E29E74FB"
export GNUPGHOME=~/.gnupg

mkdir -p "$BUILD_DIR" "$SRC_DIR"

mkdir -p $GNUPGHOME
chmod -R 700 $GNUPGHOME
echo "allow-loopback-pinentry" >>$GNUPGHOME/gpg-agent.conf
gpg-connect-agent reloadagent /bye
gpg --batch --yes --pinentry-mode loopback --passphrase-file ~/gpgpasswd --import ~/private.asc

rsync -az root@toufy.me:/var/www/aur.toufy.me/builds/ "$BUILD_DIR/"

jq -c '.[]' pkgbuilds.json | while IFS= read -r src; do
    base=$(jq -r '.base' <<<"$src")
    jq -r '.rm[]' <<<"$src" | while IFS= read -r rmv; do
        find "$BUILD_DIR" -name "$rmv*.pkg.tar.zst" -exec \
            repo-remove -Rsvk $LONGKEY \
            "$BUILD_DIR"/taur.db.tar.zst "$rmv" \;

    done
    jq -c '.pkgs[]' <<<"$src" | while IFS= read -r pkg; do
        name=$(jq -r '.name' <<<"$pkg")
        git clone "$base/$name" "$SRC_DIR"/"$name" &&
            cd "$SRC_DIR/$name" &&
            makepkg -cCd --noconfirm --skippgpcheck --sign \
                --key $LONGKEY

        jq -r '.nick[]' <<<"$pkg" | while IFS= read -r nick; do
            repo-add -Rpsvk $LONGKEY \
                "$BUILD_DIR"/taur.db.tar.zst \
                "$SRC_DIR"/"$name"/"$nick"*.pkg.tar.zst &&
                cp -rfv \
                    "$SRC_DIR"/"$name"/"$nick"*.pkg.tar.zst "$SRC_DIR"/"$name"/"$nick"*.pkg.tar.zst.sig \
                    "$BUILD_DIR"
        done

    done
done

rsync -az --delete "$BUILD_DIR/" root@toufy.me:/var/www/aur.toufy.me/builds/