diff --git a/maintainers/scripts/update.nix b/maintainers/scripts/update.nix index 2c9c0b3bf45..7c54821f66c 100755 --- a/maintainers/scripts/update.nix +++ b/maintainers/scripts/update.nix @@ -1,5 +1,6 @@ { package ? null , maintainer ? null +, path ? null }: # TODO: add assert statements @@ -49,6 +50,14 @@ let (name: pkg: pkg) pkgs; + packagesWithUpdateScript = path: + let + attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." path) null pkgs; + in + packagesWith (name: pkg: builtins.hasAttr "updateScript" pkg) + (name: pkg: pkg) + attrSet; + packageByName = name: let package = pkgs.lib.attrByPath (pkgs.lib.splitString "." name) null pkgs; @@ -65,6 +74,8 @@ let [ (packageByName package) ] else if maintainer != null then packagesWithUpdateScriptAndMaintainer maintainer + else if path != null then + packagesWithUpdateScript path else builtins.throw "No arguments provided.\n\n${helpText}"; @@ -78,7 +89,11 @@ let % nix-shell maintainers/scripts/update.nix --argstr package garbas - to run update script for specific package. + to run update script for specific package, or + + % nix-shell maintainers/scripts/update.nix --argstr path gnome3 + + to run update script for all package under an attribute path. ''; runUpdateScript = package: ''