{ description = "A modern web frontend for aria2"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, flake-utils, nixpkgs }: { overlay = final: prev: { AriaNg = let nodeDependencies = (prev.callPackage ./build-dependencies.nix { pkgs = prev; }).shell.nodeDependencies; in prev.stdenvNoCC.mkDerivation { pname = "AriaNg"; version = "1.1.7"; src = self; buildPhase = '' ln -s ${nodeDependencies}/lib/node_modules ./node_modules # shebang uses nodejs-12_x? ${prev.nodejs-10_x}/bin/node ${nodeDependencies}/bin/gulp clean build ''; installPhase = '' cp -r dist $out ''; }; }; } // flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; }; in rec { packages = { inherit (pkgs) AriaNg; }; defaultPackage = packages.AriaNg; apps = { update = { type = "app"; program = toString (pkgs.writeShellScript "update" '' ${pkgs.nodePackages.node2nix}/bin/node2nix \ --nodejs-10 \ --development \ --composition build-dependencies.nix \ --lock package-lock.json ''); }; }; }); }