musicutil/flake.nix

73 lines
2.2 KiB
Nix
Raw Normal View History

2022-02-08 11:25:17 +00:00
{
description = "A tool for organising a music library";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
utils.url = "github:numtide/flake-utils";
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
};
outputs = { self, nixpkgs, utils, ... }:
{
overlay = final: prev:
let
system = final.system;
fold-to-ascii = final.python3Packages.callPackage ./nix-extra-deps/fold-to-ascii.nix { };
in {
fold-to-ascii = {fold-to-ascii = fold-to-ascii;};
musicutil = {
musicutil = final.python3Packages.buildPythonApplication rec {
pname = "musicutil";
version = "latest";
src = ./.;
postPatch = ''
substituteInPlace musicutil/meta.py --replace 'ffmpeg_path = "ffmpeg"' 'ffmpeg_path = "${final.ffmpeg}/bin/ffmpeg"'
substituteInPlace musicutil/meta.py --replace 'ffprobe_path = "ffprobe"' 'ffprobe_path = "${final.ffmpeg}/bin/ffprobe"'
substituteInPlace musicutil/meta.py --replace 'r128gain_path = "r128gain"' 'r128gain_path = "${final.r128gain}/bin/r128gain"'
'';
doCheck = false;
propagatedBuildInputs = with final.python3Packages; [
mutagen
fold-to-ascii
pyyaml
];
};
};
};
} // utils.lib.eachSystem (utils.lib.defaultSystems) (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ self.overlay ];
};
in {
defaultPackage = self.packages."${system}".musicutil;
packages.musicutil = pkgs.musicutil.musicutil;
defaultApp = self.apps."${system}".musicutil;
apps.musicutil = {
type = "app";
program = "${self.defaultPackage."${system}"}/bin/musicutil";
};
devShell = pkgs.mkShell {
inputsFrom = [ self.packages.${system}.musicutil ];
buildInputs = with pkgs;
[
nixUnstable
mutagen
self.packages.${system}.fold-to-ascii
pyyaml
];
};
lib = pkgs.musicutil.lib;
});
}