aboutsummaryrefslogtreecommitdiffstats
path: root/community/hledger/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/hledger/APKBUILD')
-rw-r--r--community/hledger/APKBUILD130
1 files changed, 130 insertions, 0 deletions
diff --git a/community/hledger/APKBUILD b/community/hledger/APKBUILD
new file mode 100644
index 00000000000..2be6ca23816
--- /dev/null
+++ b/community/hledger/APKBUILD
@@ -0,0 +1,130 @@
+# Contributor: Dhruvin Gandhi <contact@dhruvin.dev>
+# Maintainer: Dhruvin Gandhi <contact@dhruvin.dev>
+pkgname=hledger
+pkgver=1.33
+pkgrel=0
+pkgdesc="Command-line interface for the hledger accounting system"
+_uipkgdesc="Curses-style terminal interface for the hledger accounting system"
+_webpkgdesc="Web interface for the hledger accounting system"
+url="https://hledger.org/hledger.html"
+_uiurl="https://hledger.org/hledger-ui.html"
+_weburl="https://hledger.org/hledger-web.html"
+arch="aarch64 x86_64" # limited by ghc
+license="GPL-3.0-only"
+makedepends="
+ ghc
+ cabal
+ libffi-dev
+ ncurses-dev
+ zlib-dev
+ "
+_llvmver=15
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-ui
+ $pkgname-ui-doc:uidoc
+ $pkgname-web
+ $pkgname-web-doc:webdoc
+ $pkgname-web-openrc:webopenrc
+ "
+source="https://github.com/simonmichael/hledger/archive/refs/tags/$pkgver/hledger-$pkgver.tar.gz
+ cabal.project.freeze
+ hledger-web.initd
+ hledger-web.pre-install"
+options="net"
+
+export CABAL_DIR="$srcdir"/cabal
+export PATH="/usr/lib/llvm$_llvmver/bin:$PATH"
+
+cabal_update() {
+ cd $builddir
+ cabal v2-update
+ (
+ cd "$builddir"
+ cabal v2-freeze --shadow-installed-packages
+ mv cabal.project.freeze "$startdir/"
+ )
+}
+
+prepare() {
+ default_prepare
+ cp "$srcdir"/cabal.project.freeze .
+}
+
+build() {
+ cabal update
+ cabal build --prefix=/usr --enable-relocatable all
+}
+
+check() {
+ cabal test all
+}
+
+package() {
+ # hledger
+ install -Dm755 "$(cabal list-bin hledger)" "$pkgdir"/usr/bin/hledger
+ install -Dm644 hledger/hledger.1 "$pkgdir"/usr/share/man/man1/hledger.1
+ install -Dm644 hledger/hledger.info "$pkgdir"/usr/share/info/hledger.info
+ install -Dm644 hledger/shell-completion/hledger-completion.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/hledger
+ # hledger-ui
+ install -Dm755 "$(cabal list-bin hledger-ui)" "$pkgdir"/usr/bin/hledger-ui
+ install -Dm644 hledger-ui/hledger-ui.1 "$pkgdir"/usr/share/man/man1/hledger-ui.1
+ install -Dm644 hledger-ui/hledger-ui.info "$pkgdir"/usr/share/info/hledger-ui.info
+ # hledger-web
+ install -Dm755 "$(cabal list-bin hledger-web)" "$pkgdir"/usr/bin/hledger-web
+ install -Dm644 hledger-web/hledger-web.1 "$pkgdir"/usr/share/man/man1/hledger-web.1
+ install -Dm644 hledger-web/hledger-web.info "$pkgdir"/usr/share/info/hledger-web.info
+ install -Dm755 "$srcdir"/hledger-web.initd "$pkgdir"/etc/init.d/hledger-web
+}
+
+doc() {
+ pkgdesc="$pkgdesc (documentation)"
+ install_if="docs $pkgname=$pkgver-r$pkgrel"
+ amove /usr/share/man/man1/hledger.1 /usr/share/info/hledger.info
+ $(command -v pigz || echo gzip) -n -9 "$subpkgdir"/usr/share/man/man1/hledger.1
+}
+
+ui() {
+ pkgdesc="$_uipkgdesc"
+ url="$_uiurl"
+ amove /usr/bin/hledger-ui
+}
+
+uidoc() {
+ pkgdesc="$_uipkgdesc (documentation)"
+ url="$_uiurl"
+ install_if="docs $pkgname-ui=$pkgver-r$pkgrel"
+ amove /usr/share/man/man1/hledger-ui.1 /usr/share/info/hledger-ui.info
+ $(command -v pigz || echo gzip) -n -9 "$subpkgdir"/usr/share/man/man1/hledger-ui.1
+}
+
+web() {
+ pkgdesc="$_webpkgdesc"
+ url="$_weburl"
+ install="$pkgname-web.pre-install"
+ amove /usr/bin/hledger-web
+}
+
+webdoc() {
+ pkgdesc="$_webpkgdesc (documentation)"
+ url="$_weburl"
+ install_if="docs $pkgname-web=$pkgver-r$pkgrel"
+ amove /usr/share/man/man1/hledger-web.1 /usr/share/info/hledger-web.info
+ $(command -v pigz || echo gzip) -n -9 "$subpkgdir"/usr/share/man/man1/hledger-web.1
+}
+
+webopenrc() {
+ pkgdesc="$_webpkgdesc (OpenRC init scripts)"
+ url="$_weburl"
+ install_if="openrc $pkgname-web=$pkgver-r$pkgrel"
+ amove /etc/init.d/hledger-web
+}
+
+sha512sums="
+bb8968a64a90ab725249e800feab96ffc30b019c8ee8471f475b8492645c5ce9afc0f5f0eae851517450b6043ce341fb204151967a504120d2331ac1c1e279b7 hledger-1.33.tar.gz
+d7c41b3c84708ce93ed66f21d41e19f81b7c9909986b56f701bafb1f61a7c5dec0b4e07d6aaf1a9ed62c63287e55ff6a1cbfdb70b84b9e999d3cf19303435f92 cabal.project.freeze
+4fd0898b29736c1d7f5b41b1ccca8734f38999e5ba88656e092724a7ce4ed346b4f86d627c99be77934eaa7cd86e33ce20a33a60650f1ad8a527c57387179365 hledger-web.initd
+9049869dc413c840928b6868547b0de87c624401eeebbd56a7626744634e6e65f6375ca3cf42e8d307fcc8653fbeaf231dde2b597c482176bbb0ba4034cb2c27 hledger-web.pre-install
+"