aboutsummaryrefslogtreecommitdiffstats
path: root/community/diffsitter/APKBUILD
blob: 5e91108c7f264ca288c0ad40e6c33f1a4cac356c (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
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=diffsitter
pkgver=0.7.1
pkgrel=0
pkgdesc="A tree-sitter based AST difftool to get meaningful semantic diffs"
url="https://github.com/afnanenayet/diffsitter"
arch="aarch64 armhf armv7 ppc64le x86 x86_64"  # limited by rust/cargo
license="MIT"
checkdepends="
	tree-sitter-cpp
	tree-sitter-python
	tree-sitter-rust
	"
makedepends="cargo"
install="$pkgname.post-install"
subpackages="
	$pkgname-bash-completion
	$pkgname-fish-completion
	$pkgname-zsh-completion
"
source="https://github.com/afnanenayet/diffsitter/archive/v$pkgver/$pkgname-$pkgver.tar.gz"

_cargo_opts="--frozen --no-default-features --features dynamic-grammar-libs"
_binname=$pkgname

export CARGO_REGISTRIES_CRATES_IO_PROTOCOL="sparse"

prepare() {
	default_prepare

	cargo fetch --target="$CTARGET" --locked
}

build() {
	cargo build $_cargo_opts --release

	mkdir -p comp
	local shell; for shell in bash fish zsh; do
		./target/release/$_binname gen-completion $shell > comp/$_binname.$shell
	done
}

check() {
	# Skipped tests fail due to differences in the tree-sitter-rust grammar.
	cargo test $_cargo_opts -- \
		--skip=_medium_rust_rs_false_expects \
		--skip=_medium_rust_rs_true_expects \
		--skip=_short_rust_rs_true_expects
}

package() {
	install -D -m755 target/release/$_binname -t "$pkgdir"/usr/bin/

	install -D -m644 comp/$_binname.bash "$pkgdir"/usr/share/bash-completion/completions/$_binname
	install -D -m644 comp/$_binname.fish "$pkgdir"/usr/share/fish/completions/$_binname.fish
	install -D -m644 comp/$_binname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$_binname
}

sha512sums="
d609d0b34c9b1bb3ac14211197db6b3952bdae51bef46c3876e5d63a7dc253a2d1a47b0c0d1ebcf3501cafee6c5b530ba6ea6f7d38aa593a729a19ad8dcff6e8  diffsitter-0.7.1.tar.gz
"