summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 7e15f79ce0102cbb713cfbe563f671ed39c18e42 (plain)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Maintainer: Zesko
pkgname="limine-snapper-sync"
pkgver=1.9.0
pkgrel=1
pkgdesc="The tool syncs Snapper snapshots with Limine bootloader"
arch=("any")
url="https://gitlab.com/Zesko/limine-snapper-sync"
source=("$pkgname-$pkgver.tar.gz::$url/-/archive/$pkgver/$pkgname-$pkgver.tar.gz")
license=("GPL3")
_java_version=17
depends=(
    'bash'
    'java-environment>='${_java_version}
    'limine'
    'snapper'
    'btrfs-progs'
    'inotify-tools'
    'libnotify')
optdepends=(
    'limine-dracut-support: It automates kernel installation/removal and Limine boot entry management.'
    'limine-mkinitcpio-hook: It automates kernel installation/removal and Limine boot entry management.'
    'snap-pac: triggers Snapper to create snapshots during system updates.'
    'rsync: Alternative method for restoring snapshots.'
    'journalctl-desktop-notification: Sends desktop notifications for errors, including detected hardware issues.'
    'b3sum: Fast Blake3 hash function to prevent duplication.'
)
makedepends=('git' 'maven')
backup=(etc/limine-snapper-sync.conf)
conflicts=('limine-snapper-sync-git')
sha256sums=('1b994b310a9353df77aff942d2a359dc08dbdb5f0c9ffebba4b21e6451e3c24b')

check_java_version() {
    local java_version
    java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | cut -d'.' -f1)

    if [[ -z "$java_version" ]]; then
        echo "Error: Java version ${_java_version} is not installed or not set." >&2
        echo "Please check with: 'archlinux-java status'"
        echo "If java ${_java_version} or a newer version is installed, run 'archlinux-java set java-${_java_version}-openjdk' or a newer version."
        return 1
    fi

    if [[ "$java_version" -lt ${_java_version} ]]; then
        echo "Error: Java version $java_version is older than the required ${_java_version}." >&2
        echo "Please check with: 'archlinux-java status'"
        echo "If java ${_java_version} or a newer version is installed, run 'archlinux-java set java-${_java_version}-openjdk' or a newer version."
        return 1
    fi
}

build() {
    unset JAVA_HOME JAVA_OPTS JDK_JAVA_OPTIONS JAVA_TOOL_OPTIONS
    if check_java_version; then
        cd "$srcdir/${pkgname}-${pkgver}"
        mvn clean package
    else
        return 1
    fi
}

package() {
    cd "$srcdir/${pkgname}-${pkgver}"
    src_path="install/arch-linux/"
    install -dm 755 $src_path/usr/share/java/
    install -Dm 644 target/limine-snapper-sync.jar $src_path/usr/share/java/
    install -dm 755 $src_path/usr/share/doc/limine-snapper-sync/
    cp -r README.md CHANGELOG.md screenshots $src_path/usr/share/doc/limine-snapper-sync/
    cp -r $src_path/usr $src_path/etc "$pkgdir"
}