summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 489609a9de39fe67b739ee186ab236982ed9fb73 (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
# shellcheck shell=bash disable=SC2034,SC2154
# Maintainer: Wu Zhenyu <wuzhenyu@ustc.edu>
_pkgname=prompt-style
pkgname=(lua{,51,52,53}-"$_pkgname")
pkgver=0.0.13
pkgrel=1
pkgdesc="Lua plugin for powerlevel10k style prompt and WakaTime time tracking"
arch=(any)
url=https://github.com/wakatime/$_pkgname.lua
license=(GPL3)
makedepends=(luarocks)
optdepends=('git: get project name' 'python-lupa')
_revision=1
source=("https://luarocks.org/manifests/freed-wu/$_pkgname-$pkgver-$_revision.src.rock")
sha256sums=('7bc958b2ec65f28cfe34add941ef8c1e147648e3c0d45e49fac6fc3677490323')
_lua_version=5.4

_package() {
	install -Dm644 ./*.rock -t $1
	luarocks install --no-manifest --lua-version=$1 --tree="$pkgdir/usr/" --deps-mode=none $1/*.rock
	install -d "$pkgdir/usr/share/"{bash-completion/completions,zsh/site-functions,fish/vendor_completions.d}
	rm -r "${pkgdir:?}/usr/bin"
	export LUA_PATH_${1/./_}="./share/lua/$1/?.lua;./?.lua;./?/init.lua;;/usr/share/lua/$1/?.lua;/usr/share/lua/$1.lua"
	export LUA_CPATH_${1/./_}="./lib/lua/$1/?.so;./?.so;./?/init.so;;/usr/lib/lua/$1/?.so;/usr/lib/lua/$1.so"
	local v
	if [[ "$version" != "$_lua_version" ]]; then
		v="$version"
	fi
	install -D "$pkgdir/usr/lib/luarocks/rocks-$version/prompt-style/$pkgver-$_revision/bin/"lupa "$pkgdir/usr/bin/lupa$v"
}

_complete() {
	lua="lua$1"
	shift
	pushd "$pkgdir/usr" || exit 1
	for program; do
		"$lua" "bin/$program" --completion bash | tee "$pkgdir/usr/share/bash-completion/completions/$program"
		"$lua" "bin/$program" --completion zsh | tee "$pkgdir/usr/share/zsh/site-functions/_$program"
		"$lua" "bin/$program" --completion fish | tee "$pkgdir/usr/share/fish/vendor_completions.d/$program.fish"
	done
	popd || exit 1
}

package_lua51-prompt-style() {
	# neovim uses lua5.1
	optdepends+=(neovim)
	depends=(lua51-{warna,filesystem,luaprompt})
	local version=5.1
	_package $version
	install -D "$pkgdir/usr/lib/luarocks/rocks-$version/prompt-style/$pkgver-$_revision/bin/"nvimp -t "$pkgdir/usr/bin"
	rm -r "$pkgdir/usr/lib/luarocks/rocks-$version/prompt-style/$pkgver-$_revision/bin/"
	_complete "$version" nvimp
}

package_lua52-prompt-style() {
	depends=(lua52-{warna,filesystem,luaprompt})
	local version=5.2
	_package $version
	rm -r "$pkgdir/usr/lib/luarocks/rocks-$version/prompt-style/$pkgver-$_revision/bin/"
}

package_lua53-prompt-style() {
	depends=(lua53-{warna,filesystem,luaprompt})
	local version=5.3
	_package $version
	rm -r "$pkgdir/usr/lib/luarocks/rocks-$version/prompt-style/$pkgver-$_revision/bin/"
}

package_lua-prompt-style() {
	# pandoc, neomutt uses lua5.4
	optdepends+=(pandoc-cli neomutt)
	depends=(lua-{warna,filesystem,luaprompt})
	local version=$_lua_version
	_package $version
	install -D "$pkgdir/usr/lib/luarocks/rocks-$version/prompt-style/$pkgver-$_revision/bin/"{pandocp,neomuttp} -t "$pkgdir/usr/bin"
	rm -r "$pkgdir/usr/lib/luarocks/rocks-$version/prompt-style/$pkgver-$_revision/bin/"
	# pandoc lua CLI doesn't accpet arguments
	_complete "$version" pandocp neomuttp
}