blob: 0c28d6cf53ab42143cd4c723ea0949ce0fef850a (
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
|
{
lib,
stdenvNoCC,
zip,
strip-nondeterminism,
packwiz-installer-bootstrap,
}: {
pname ? null,
version ? "",
src ? null,
extraFiles ? {},
instanceCfg,
...
} @ args:
stdenvNoCC.mkDerivation (finalAttrs:
{
pname = src.pname or pname;
version = src.version or version;
dontUnpack = true;
dontConfig = true;
dontBuild = true;
nativeBuildInputs = [zip];
installPhase = let
modpackFiles =
{
"packwiz-installer-bootstrap.jar" = packwiz-installer-bootstrap;
"instance.cfg" = instanceCfg;
}
// extraFiles;
in
''
runHook preInstall
mkdir -p $out
tmp="$(mktemp -d)"
''
+ (lib.concatLines (
lib.mapAttrsToList
(name: file: ''
mkdir -p "$tmp"/"$(dirname ${name})"
cp -as ${file} "$tmp"/${name}
'')
modpackFiles
))
+ ''
cd "$tmp"
zip -r $out/${finalAttrs.pname}-${finalAttrs.version}.zip {*,.*}
${lib.getExe strip-nondeterminism} $out/${finalAttrs.pname}-${finalAttrs.version}.zip
'';
}
// args)
|