diff --git a/.gitignore b/.gitignore index 81af514..d90caef 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ **/*.env Cargo.lock .test/ +pkg diff --git a/.zed/tasks.json b/.zed/tasks.json index cfc0da5..23fe7cf 100644 --- a/.zed/tasks.json +++ b/.zed/tasks.json @@ -29,6 +29,10 @@ "command": "cargo build --release", "use_new_terminal": false, }, + { + "label": "Publish Arch Package", + "command": "sh resources/publish.sh", + }, { "label": "Run Tests", "command": "cargo test", diff --git a/PKGBUILD b/PKGBUILD index 6e05196..63a64fe 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,18 +1,16 @@ # Maintainer: zxq5 pkgbase='damn-simple-architecture' pkgname=('dsa' 'dsx' 'dsa-tools' 'dsx-server') -pkgver=0.1.0 +pkgver=0.1.1 pkgrel=1 +startdir='.' pkgdesc="Damn Simple Architecture" arch=('x86_64') url="https://git.zxq5.dev/zxq5/damn-simple-architecture" license=('MIT') makedepends=('rust' 'cargo' 'sed') -sha256sums=('SKIP') build() { - cd - cargo build --release \ --bin dsa \ --bin dsx \ @@ -25,37 +23,37 @@ package_dsa() { pkgdesc="DSA core binary" depends=() - cd "$pkgbase-$pkgver" - install -Dm755 "target/release/dsa" "$pkgdir/usr/bin/dsa" + install -Dm755 "$startdir/target/release/dsa" "$pkgdir/usr/bin/dsa" + install -Dm644 "$startdir/resources/dsa.desktop" \ + "$pkgdir/usr/share/applications/dsa.desktop" + install -Dm644 "$startdir/resources/dsa.png" \ + "$pkgdir/usr/share/icons/hicolor/256x256/apps/dsa.png" } package_dsx() { pkgdesc="DSX client" depends=('dsa') - cd "$pkgbase-$pkgver" - install -Dm755 "target/release/dsx" "$pkgdir/usr/bin/dsx" + install -Dm755 "$startdir/target/release/dsx" "$pkgdir/usr/bin/dsx" } package_dsa-tools() { pkgdesc="DSA assembler and compiler tools" depends=() - cd "$pkgbase-$pkgver" - install -Dm755 "target/release/dsa-a" "$pkgdir/usr/bin/dsa-a" - install -Dm755 "target/release/dsa-c" "$pkgdir/usr/bin/dsa-c" + install -Dm755 "$startdir/target/release/dsa-a" "$pkgdir/usr/bin/dsa-a" + install -Dm755 "$startdir/target/release/dsa-c" "$pkgdir/usr/bin/dsa-c" } package_dsx-server() { pkgdesc="DSX server" depends=() - cd "$pkgbase-$pkgver" - install -Dm755 "target/release/dsx-server" "$pkgdir/usr/bin/dsx-server" + install -Dm755 "$startdir/target/release/dsx-server" "$pkgdir/usr/bin/dsx-server" # Example sed usage — patch config paths for system install sed -i 's|./templates|/usr/share/dsx-server/templates|g' \ "target/release/dsx-server" 2>/dev/null || true - install -Dm644 "dsx_server/templates" "$pkgdir/usr/share/dsx-server/templates" 2>/dev/null || true + install -Dm644 "$startdir/dsx_server/templates" "$pkgdir/usr/share/dsx-server/templates" 2>/dev/null || true } diff --git a/resources/dsa.desktop b/resources/dsa.desktop new file mode 100644 index 0000000..e35c653 --- /dev/null +++ b/resources/dsa.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=Damn Simple Architecture +Comment=Damn Simple Architecture Emulator +Exec=dsa +Icon=dsa +Categories=Development; diff --git a/resources/dsa.png b/resources/dsa.png new file mode 100644 index 0000000..35ed764 Binary files /dev/null and b/resources/dsa.png differ diff --git a/resources/publish.sh b/resources/publish.sh new file mode 100755 index 0000000..4a1b696 --- /dev/null +++ b/resources/publish.sh @@ -0,0 +1,11 @@ +#!/bin/sh +makepkg + +# load .env +. ./.env + +for pkg in *.pkg.tar.zst; do + curl --user $USERNAME:$PASSWORD \ + --upload-file "$pkg" \ + https://git.zxq5.dev/api/packages/zxq5/arch/core +done