This commit is contained in:
74
cfg/repo.sh
Executable file
74
cfg/repo.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/bin/zsh
|
||||
set -e
|
||||
|
||||
d=${0:a:h:h}
|
||||
source $d/.env
|
||||
|
||||
echo "=== Building and publishing packages on $HOST ==="
|
||||
ssh "$HOST" zsh -s -- "$GPG_KEY" <<'REMOTE'
|
||||
set -e
|
||||
setopt nonomatch 2>/dev/null || true
|
||||
GPG_KEY="$1"
|
||||
REPO_NAME="aios"
|
||||
REPO_DIR="${HOME}/ai/repo"
|
||||
WORK="${HOME}/aios-pkg"
|
||||
|
||||
if [ ! -d "$REPO_DIR/.git" ]; then
|
||||
git clone git@git.syui.ai:ai/repo.git "$REPO_DIR"
|
||||
cd "$REPO_DIR"
|
||||
git config user.email 'syui@syui.ai'
|
||||
git config user.name 'syui'
|
||||
fi
|
||||
|
||||
cd "$REPO_DIR"
|
||||
git config user.signingkey "$GPG_KEY"
|
||||
git config commit.gpgsign true
|
||||
|
||||
rm -rf "$WORK"
|
||||
mkdir -p "$WORK"
|
||||
|
||||
cd "$WORK"
|
||||
git clone --depth 1 https://git.syui.ai/ai/os.git
|
||||
|
||||
for pkg in ailog aigpt aishell; do
|
||||
echo "=== Building $pkg ==="
|
||||
cp -r "$WORK/os/pkg/$pkg" "$WORK/$pkg"
|
||||
cd "$WORK/$pkg"
|
||||
makepkg -sf --noconfirm --sign --key "$GPG_KEY"
|
||||
cd "$WORK"
|
||||
done
|
||||
|
||||
mkdir -p "$REPO_DIR/x86_64"
|
||||
|
||||
for pkg in ailog aigpt aishell; do
|
||||
rm -f "$REPO_DIR/x86_64/${pkg}"-*.pkg.tar.zst
|
||||
rm -f "$REPO_DIR/x86_64/${pkg}"-*.pkg.tar.zst.sig
|
||||
rm -f "$REPO_DIR/x86_64/${pkg}-debug"-*.pkg.tar.zst
|
||||
rm -f "$REPO_DIR/x86_64/${pkg}-debug"-*.pkg.tar.zst.sig
|
||||
cp "$WORK"/"$pkg"/*.pkg.tar.zst "$REPO_DIR/x86_64/"
|
||||
cp "$WORK"/"$pkg"/*.pkg.tar.zst.sig "$REPO_DIR/x86_64/" 2>/dev/null || true
|
||||
done
|
||||
|
||||
cd "$REPO_DIR/x86_64"
|
||||
rm -f "${REPO_NAME}".{db,files}*
|
||||
repo-add --sign --key "$GPG_KEY" "${REPO_NAME}.db.tar.gz" *.pkg.tar.zst
|
||||
gpg --export "$GPG_KEY" > "$REPO_DIR/aios.gpg"
|
||||
|
||||
for f in "${REPO_NAME}.db" "${REPO_NAME}.files" "${REPO_NAME}.db.sig" "${REPO_NAME}.files.sig"; do
|
||||
if [ -L "$f" ]; then
|
||||
target=$(readlink "$f")
|
||||
rm "$f"
|
||||
cp "$target" "$f"
|
||||
fi
|
||||
done
|
||||
rm -f *.old *.old.sig
|
||||
|
||||
cd "$REPO_DIR"
|
||||
git add -A
|
||||
git commit -m "update $(date +%Y.%m.%d)" || true
|
||||
git push
|
||||
|
||||
rm -rf "$WORK"
|
||||
|
||||
echo "=== Done ==="
|
||||
REMOTE
|
||||
Reference in New Issue
Block a user