# Maintainer: wayscriber maintainers <hyprarcher@proton.me>
pkgname=wayscriber
pkgver=0.9.10
pkgrel=1
pkgdesc='Screen annotation tool for Wayland compositors'
arch=('x86_64' 'aarch64')
url='https://wayscriber.com'
license=('MIT')
depends=(
    'cairo'
    'wayland'
    'pango'
    'gcc-libs'
    'glibc'
    'wl-clipboard'
    'grim'
    'slurp'
)
makedepends=(
    'cargo'
    'git'
)
source=("git+https://github.com/devmobasa/wayscriber.git#tag=v$pkgver"
        "wayscriber.desktop"
        "wayscriber-configurator.desktop"
        "icons/wayscriber-16.png"
        "icons/wayscriber-19.png"
        "icons/wayscriber-22.png"
        "icons/wayscriber-24.png"
        "icons/wayscriber-38.png"
        "icons/wayscriber-64.png"
        "icons/wayscriber-128.png"
        "icons/wayscriber-configurator-16.png"
        "icons/wayscriber-configurator-19.png"
        "icons/wayscriber-configurator-22.png"
        "icons/wayscriber-configurator-24.png"
        "icons/wayscriber-configurator-38.png"
        "icons/wayscriber-configurator-64.png"
        "icons/wayscriber-configurator-128.png")
sha256sums=('SKIP'
            'bef462b71dd1247ea1135d0862d48fb4927c32afdb8852891b0af76c6aacc6d0'
            '752ffafb4a04db3459c5a64893ba795a6b56c790820f99f3aaece871a1d2c321'
            'b1e96fd63b45db13f971332a338d3f85587e91300ac2b8180492f8d3e8185032'
            'bd768b361edc366bc2a537279c0e6e83bef0d095a0dcc667155749c04c7982cd'
            'dab00ff583b0e85f9f3280a90e47e36fee5104da2790382e1e04927d6c818079'
            'd469a2ae923a43463e0b912118cfc81f85343c9c2c372b5bf546c7389c1f364c'
            'e0d8c657941d7a35b46a913eaf843b812ee556524765e5ddc3e32afde5023385'
            'aa18140e5b8290b79d9c71f9ed05b2466d6ece0be445054c4864db9e2b4f5e83'
            'a5653a2393ca82ad06cad2fbe65cb95dafb1e94b8b3d937682acc5873f766638'
            '42a3cf52381fd534168f04519abdca75db7e98a35a882620dfb6064c3e00496d'
            '57884f6279310bba53dd477846ba10b56a92e4c282a15702c2f456d7d94afdaa'
            'ada1453a1e2bd6158f72bfdd78c2547b5a167fe29f12e32f3eb06d1555aabc4b'
            '31e78c9dbe0e6b315bc0fa100db81f8642ccedbd9c1731553052878abd1d0e4a'
            '76e09cf750823a5d333794f4ae02cbdf29877ba6ae3ea40f636474d219115ba1'
            'edc1a54e03b66ea72a03a82c9dd65e63aa4f1d489dd109afb02b5787b59d51d1'
            '5ca40d3021acaa65252b224de4dfebdf38e5c2d4fe077a1be4a060ead0eb9c80')

prepare() {
    cd "$pkgname"
    export RUSTUP_TOOLCHAIN=stable
    cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
    cargo fetch --locked --manifest-path configurator/Cargo.toml --target "$CARCH-unknown-linux-gnu"
}

build() {
    cd "$pkgname"
    export RUSTUP_TOOLCHAIN=stable
    export CARGO_TARGET_DIR=target
    cargo build --frozen --release --bins
    cargo build --frozen --release --bins --manifest-path configurator/Cargo.toml
}

package() {
    cd "$pkgname"

    # Install binaries
    install -Dm755 "target/release/wayscriber" "$pkgdir/usr/bin/wayscriber"
    install -Dm755 "target/release/wayscriber-configurator" "$pkgdir/usr/bin/wayscriber-configurator"

    # Install systemd user service
    install -Dm644 packaging/wayscriber.service "$pkgdir/usr/lib/systemd/user/wayscriber.service"

    # Install desktop entries and icons
    install -Dm644 "$srcdir/wayscriber.desktop" "$pkgdir/usr/share/applications/wayscriber.desktop"
    install -Dm644 "$srcdir/wayscriber-configurator.desktop" "$pkgdir/usr/share/applications/wayscriber-configurator.desktop"
    install -Dm644 "$srcdir/wayscriber-16.png" "$pkgdir/usr/share/icons/hicolor/16x16/apps/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-19.png" "$pkgdir/usr/share/icons/hicolor/19x19/apps/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-22.png" "$pkgdir/usr/share/icons/hicolor/22x22/apps/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-24.png" "$pkgdir/usr/share/icons/hicolor/24x24/apps/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-38.png" "$pkgdir/usr/share/icons/hicolor/38x38/apps/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-64.png" "$pkgdir/usr/share/icons/hicolor/64x64/apps/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-128.png" "$pkgdir/usr/share/icons/hicolor/128x128/apps/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-16.png" "$pkgdir/usr/share/icons/hicolor/16x16/status/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-19.png" "$pkgdir/usr/share/icons/hicolor/19x19/status/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-22.png" "$pkgdir/usr/share/icons/hicolor/22x22/status/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-24.png" "$pkgdir/usr/share/icons/hicolor/24x24/status/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-38.png" "$pkgdir/usr/share/icons/hicolor/38x38/status/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-64.png" "$pkgdir/usr/share/icons/hicolor/64x64/status/wayscriber.png"
    install -Dm644 "$srcdir/wayscriber-configurator-16.png" "$pkgdir/usr/share/icons/hicolor/16x16/apps/wayscriber-configurator.png"
    install -Dm644 "$srcdir/wayscriber-configurator-19.png" "$pkgdir/usr/share/icons/hicolor/19x19/apps/wayscriber-configurator.png"
    install -Dm644 "$srcdir/wayscriber-configurator-22.png" "$pkgdir/usr/share/icons/hicolor/22x22/apps/wayscriber-configurator.png"
    install -Dm644 "$srcdir/wayscriber-configurator-24.png" "$pkgdir/usr/share/icons/hicolor/24x24/apps/wayscriber-configurator.png"
    install -Dm644 "$srcdir/wayscriber-configurator-38.png" "$pkgdir/usr/share/icons/hicolor/38x38/apps/wayscriber-configurator.png"
    install -Dm644 "$srcdir/wayscriber-configurator-64.png" "$pkgdir/usr/share/icons/hicolor/64x64/apps/wayscriber-configurator.png"
    install -Dm644 "$srcdir/wayscriber-configurator-128.png" "$pkgdir/usr/share/icons/hicolor/128x128/apps/wayscriber-configurator.png"

    # Install documentation and example config
    install -Dm644 config.example.toml "$pkgdir/usr/share/doc/$pkgname/config.example.toml"
    install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"

    # Install license if available
    [ -f LICENSE ] && install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" || true
}
