summary refs log tree commit diff
path: root/pkgs/applications/audio/split2flac/default.nix
blob: efad434e30796e22868bd5102dd016481563cad2 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{ stdenv, fetchFromGitHub, makeWrapper
, shntool, cuetools
, flac, faac, mp4v2, wavpack, mac
, imagemagick, libiconv, enca, lame, pythonPackages, vorbis-tools
, aacgain, mp3gain, vorbisgain
}:

let
  wrapSplit2flac =  format: ''
    makeWrapper $out/bin/.split2flac-wrapped $out/bin/split2${format} \
      --set SPLIT2FLAC_FORMAT ${format} \
      --prefix PATH : ${stdenv.lib.makeBinPath [
        shntool cuetools
        flac faac mp4v2 wavpack mac
        imagemagick libiconv enca lame pythonPackages.mutagen vorbis-tools
        aacgain mp3gain vorbisgain
      ]}
  '';

in stdenv.mkDerivation rec {
  pname = "split2flac";
  version = "122";

  src = fetchFromGitHub {
    owner = "ftrvxmtrx";
    repo = "split2flac";
    rev = version;
    sha256 = "1a71amamip25hhqx7wwzfcl3d5snry9xsiha0kw73iq2m83r2k63";
  };

  dontBuild = true;

  nativeBuildInputs = [ makeWrapper ];

  patchPhase = ''
    substituteInPlace split2flac \
      --replace 'FORMAT="''${0##*split2}"' 'FORMAT=''${SPLIT2FLAC_FORMAT:-flac}'
  '';

  installPhase = ''
    mkdir -p $out/share/bash-completion/completions
    cp split2flac-bash-completion.sh \
      $out/share/bash-completion/completions/split2flac-bash-completion.sh

    mkdir -p $out/bin
    cp split2flac $out/bin/.split2flac-wrapped

    ${wrapSplit2flac "flac"}
    ${wrapSplit2flac "mp3"}
    ${wrapSplit2flac "ogg"}
    ${wrapSplit2flac "m4a"}
    ${wrapSplit2flac "wav"}
  '';

  meta = with stdenv.lib; {
    description = "Split flac/ape/wv/wav + cue sheet into separate tracks";
    homepage = "https://github.com/ftrvxmtrx/split2flac";
    license = licenses.mit;
    platforms = platforms.all;
    maintainers = with maintainers; [ jfrankenau ];
  };
}