about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/video/losslesscut-bin/windows.nix
blob: fe5df9d6c9066bb4d681a2b4c941e3236a29f9e3 (plain) (blame)
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;
}