summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 01541d4b70e63a145bc33819711e3ff9a3c1f236 (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
70
71
72
73
74
75
76
# Maintainer: Zesko
pkgname="limine-snapper-sync-git"
pkgver=r279.7ef1f29
pkgrel=1
pkgdesc="The tool syncs Snapper snapshots with Limine bootloader"
arch=("any")
url="https://gitlab.com/Zesko/limine-snapper-sync"
source=(git+$url.git)
license=("GPL3")
_java_version=17
depends=(
    'bash'
    'java-environment>='${_java_version}
    'limine'
    'snapper'
    'btrfs-progs'
    'inotify-tools'
    'libnotify')
optdepends=(
    'limine-dracut-support: 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')
sha1sums=('SKIP')
backup=(etc/limine-snapper-sync.conf)
conflicts=('limine-snapper-sync')

pkgver() {
    cd "$srcdir/${pkgname%-git}"
    printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

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}."
        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
    unset JAVA_OPTS
    unset JDK_JAVA_OPTIONS
    unset JAVA_TOOL_OPTIONS
    if check_java_version; then
        cd "$srcdir/${pkgname%-git}"
        mvn clean package
    else
        return 1
    fi
}

package() {
    cd "$srcdir/${pkgname%-git}"
    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/${pkgname%-git}/
    cp -r README.md CHANGELOG.md screenshots $src_path/usr/share/doc/${pkgname%-git}/
    cp -r $src_path/usr $src_path/etc "$pkgdir"
}