{ 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; }); }