forked from NixOS/nixpkgs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
windows.nix
45 lines (38 loc) · 1.17 KB
/
windows.nix
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
{ stdenvNoCC
, lib
, fetchurl
, unzip
, version
, useMklink ? false
, customSymlinkCommand ? null
}:
let
pname = "losslesscut";
nameRepo = "lossless-cut";
nameCamel = "LosslessCut";
nameSourceBase = "${nameCamel}-win";
nameSource = "${nameSourceBase}.zip";
nameExecutable = "${nameCamel}.exe";
owner = "mifi";
getSymlinkCommand = if (customSymlinkCommand != null) then customSymlinkCommand
else if useMklink then (targetPath: linkPath: "mklink ${targetPath} ${linkPath}")
else (targetPath: linkPath: "ln -s ${targetPath} ${linkPath}");
in stdenvNoCC.mkDerivation {
inherit pname version;
src = fetchurl {
name = nameSource;
url = "https://github.com/${owner}/${nameRepo}/releases/download/v${version}/${nameSource}";
sha256 = "1rq9frab0jl9y1mgmjhzsm734jvz0a646zq2wi5xzzspn4wikhvb";
};
nativeBuildInputs = [ unzip ];
unpackPhase = ''
unzip $src -d ${nameSourceBase}
'';
sourceRoot = nameSourceBase;
installPhase = ''
mkdir -p $out/bin $out/libexec
cd ..
mv ${nameSourceBase} $out/libexec
'' + (getSymlinkCommand "${nameSourceBase}/${nameExecutable}" "$out/bin/${nameExecutable}");
meta.platforms = lib.platforms.windows;
}