summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 21fc4f6c2697703d1d82bd69ac2705252b5378fc (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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Maintainer: Caleb Maclennan <caleb@alerque.com>

pkgbase=decasify-git
_pkgbase=${pkgbase%-git}
pkgname=("$pkgbase" "lua-$pkgbase" "lua53-$pkgbase" "lua52-$pkgbase" "lua51-$pkgbase" "neovim-$pkgbase" "python-$pkgbase" "sile-$pkgbase")
pkgver=0.10.1.r0.gffd4fd9
_rockrel=1
pkgrel=1
pkgdesc='cast strings to title-case according to locale specific style guides including Turkish'
arch=(x86_64)
url="https://github.com/alerque/$_pkgbase"
license=(LGPL-3.0-only)
depends=(gcc-libs
         glibc)
makedepends=(cargo
             git
             lua{,-luarocks-build-rust-mlua}
             lua51{,-luarocks-build-rust-mlua}
             lua52{,-luarocks-build-rust-mlua}
             lua53{,-luarocks-build-rust-mlua}
             luarocks
             python-{build,installer,wheel}
             python-maturin
             jq)
source=("git+$url.git")
sha256sums=('SKIP')
validpgpkeys=('9F377DDB6D3153A48EB3EB1E63CC496475267693') # Caleb Maclennan <caleb@alerque.com> (@alerque)

prepare() {
	cd "$_pkgbase"
	cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}

pkgver() {
	cd "$_pkgbase"
	git describe --long --tags --abbrev=7 --match="v*" HEAD |
		sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}

build() {
	cd "$_pkgbase"
	./bootstrap.sh
	export CARGO_FEATURE_FLAGS==--offline
	./configure --prefix /usr
	make
	python -m build -wn
}

check() {
	cd "$_pkgbase"
	./$_pkgbase -l tr -c title 'ılIk ilkİ' | grep -Fx 'Ilık İlki'
	# export CARGO_FEATURE_FLAGS==--offline
	# check requires lua & python developer tooling, needs to be reworked for a simple selfcheck
	# make check
}

package_decasify-git() {
	cd "$_pkgbase"
	pkgdesc+=' (CLI tool)'
	provides=("${pkgname%-git}=$pkgver")
	conflicts=("${pkgname%-git}")
	make DESTDIR="$pkgdir" install
}

_package() {
	cd "$_pkgbase"
	pkgdesc+=" (Rock for Lua $1)"
	provides=("${pkgname%-git}=$pkgver")
	conflicts=("${pkgname%-git}")
	luarocks --lua-version "$1" --tree "$pkgdir/usr/" \
		make --deps-mode none --no-manifest "$_pkgbase-dev-$_rockrel.rockspec"
}

package_lua-decasify-git() {
	_package 5.4
}

package_lua51-decasify-git() {
	_package 5.1
}

package_lua52-decasify-git() {
	_package 5.2
}

package_lua53-decasify-git() {
	_package 5.3
}

package_neovim-decasify-git() {
	cd "$_pkgbase"
	pkgdesc+=' (Neovim plugin)'
	depends=("lua51-$pkgbase-git=$pkgver"
	         neovim)
	provides=("${pkgname%-git}=$pkgver")
	conflicts=("${pkgname%-git}")
	find plugin -type f -exec \
		install -Dm0644 {} "$pkgdir/usr/share/nvim/site/pack/dist/start/$_pkgbase/{}" \;
}

package_python-decasify-git() {
	cd "$_pkgbase"
	pkgdesc+=' (Python module)'
	depends=(python)
	provides=("${pkgname%-git}=$pkgver")
	conflicts=("${pkgname%-git}")
	python -m installer -d "$pkgdir" dist/*.whl
}

package_sile-decasify-git() {
	cd "$_pkgbase"
	pkgdesc+=' (SILE package)'
	depends=("lua51-$pkgbase-git=$pkgver"
	         sile)
	provides=("${pkgname%-git}=$pkgver")
	conflicts=("${pkgname%-git}")
	luarocks --lua-version 5.1 --tree "$pkgdir/usr/" \
		make --deps-mode none --no-manifest "$_pkgbase.sile-dev-$_rockrel.rockspec"
}