36 lines
1.1 KiB
Nix
36 lines
1.1 KiB
Nix
{
|
|
description = "Music downloader";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
npm-buildpackage.url = "github:serokell/nix-npm-buildpackage";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, npm-buildpackage, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: let
|
|
pkgs = import nixpkgs { inherit system; overlays = [(final: prev: {
|
|
inherit (final.callPackage "${npm-buildpackage}" { nodejs = final.nodejs-14_x; }) mkNodeModules buildNpmPackage buildYarnPackage;
|
|
})]; };
|
|
in {
|
|
packages.mudl = pkgs.buildNpmPackage {
|
|
src = ./.;
|
|
buildInputs = [ pkgs.makeWrapper ];
|
|
postInstall = ''
|
|
chmod +x $out/index.js
|
|
makeWrapper $out/index.js $out/bin/mudl --prefix PATH : ${nixpkgs.lib.makeBinPath (with pkgs; [ yt-dlp imagemagick sacad id3v2 ])}
|
|
rm $out/bin/npm
|
|
'';
|
|
};
|
|
|
|
defaultPackage = self.packages.${system}.mudl;
|
|
|
|
apps.mudl = {
|
|
type = "app";
|
|
program = "${self.packages.${system}.mudl}/bin/mudl";
|
|
};
|
|
|
|
defaultApp = self.apps.${system}.mudl;
|
|
});
|
|
}
|