tangled
alpha
login
or
join now
karitham.dev
/
dotfiles
0
fork
atom
nix all the things
0
fork
atom
overview
issues
pulls
pipelines
topiary-nu: cleanup topiary-nu building
karitham.dev
4 months ago
bbb9d5ef
ab6bc18a
verified
This commit was signed with the committer's
known signature
.
karitham.dev
SSH Key Fingerprint:
SHA256:ODeRMGYuG7M/0G+fRF6IfwUk7r5AgG5MYdFTN+uvimc=
+24
-42
1 changed file
expand all
collapse all
unified
split
pkgs
topiary-nu.nix
+24
-42
pkgs/topiary-nu.nix
···
1
1
{
2
2
lib,
3
3
stdenv,
4
4
-
fetchFromGitHub,
5
4
tree-sitter,
6
6
-
nodejs,
7
5
topiary,
8
6
makeWrapper,
9
7
runCommand,
10
10
-
}:
11
11
-
12
12
-
let
13
13
-
treeSitterNu = stdenv.mkDerivation {
14
14
-
name = "tree-sitter-nu";
15
15
-
src = fetchFromGitHub {
16
16
-
owner = "nushell";
17
17
-
repo = "tree-sitter-nu";
18
18
-
rev = "18b7f951e0c511f854685dfcc9f6a34981101dd6";
19
19
-
hash = "sha256-OSazwPrUD7kWz/oVeStnnXEJiDDmI7itiDPmg062Kl8=";
8
8
+
fetchFromGitHub,
9
9
+
}: let
10
10
+
treeSitterWithLatestNu = tree-sitter.override {
11
11
+
extraGrammars = {
12
12
+
tree-sitter-nu = {
13
13
+
url = "https://github.com/nushell/tree-sitter-nu";
14
14
+
rev = "18b7f951e0c511f854685dfcc9f6a34981101dd6";
15
15
+
sha256 = "sha256-OSazwPrUD7kWz/oVeStnnXEJiDDmI7itiDPmg062Kl8=";
16
16
+
fetchSubmodules = false;
17
17
+
};
20
18
};
21
21
-
22
22
-
buildInputs = [
23
23
-
tree-sitter
24
24
-
nodejs
25
25
-
];
26
26
-
27
27
-
buildPhase = ''
28
28
-
tree-sitter generate --abi=14
29
29
-
'';
30
30
-
31
31
-
installPhase = ''
32
32
-
mkdir -p $out/lib
33
33
-
if [[ -e src/scanner.c ]]; then
34
34
-
$CC -fPIC -c src/scanner.c -o scanner.o -Isrc -O2
35
35
-
fi
36
36
-
$CC -fPIC -c src/parser.c -o parser.o -Isrc -O2
37
37
-
$CC -shared -o $out/lib/tree_sitter_nu.so *.o
38
38
-
'';
39
19
};
20
20
+
21
21
+
treeSitterNu = treeSitterWithLatestNu.builtGrammars.tree-sitter-nu;
40
22
41
23
topiaryNushell = fetchFromGitHub {
42
24
owner = "blindFS";
···
56
38
languages = {
57
39
nu = {
58
40
extensions = ["nu"],
59
59
-
grammar.source.path = "${treeSitterNu}/lib/tree_sitter_nu.so"
41
41
+
grammar.source.path = "${treeSitterNu}/parser"
60
42
},
61
43
},
62
44
}
···
68
50
'';
69
51
};
70
52
in
71
71
-
runCommand "topiary-nu" {
72
72
-
buildInputs = [ makeWrapper ];
73
73
-
meta = {
74
74
-
mainProgram = "topiary-nu";
75
75
-
};
76
76
-
} ''
77
77
-
mkdir -p $out/bin
78
78
-
makeWrapper ${lib.getExe topiary} $out/bin/topiary-nu \
79
79
-
--set TOPIARY_LANGUAGE_DIR "${configDir}/languages" \
80
80
-
--set TOPIARY_CONFIG_FILE "${configDir}/languages.ncl"
81
81
-
''
53
53
+
runCommand "topiary-nu" {
54
54
+
buildInputs = [makeWrapper];
55
55
+
meta = {
56
56
+
mainProgram = "topiary-nu";
57
57
+
};
58
58
+
} ''
59
59
+
mkdir -p $out/bin
60
60
+
makeWrapper ${lib.getExe topiary} $out/bin/topiary-nu \
61
61
+
--set TOPIARY_LANGUAGE_DIR "${configDir}/languages" \
62
62
+
--set TOPIARY_CONFIG_FILE "${configDir}/languages.ncl"
63
63
+
''