anchor.diff:          --argstr commit true
     '';
   
  +  /* Transform a matched package into an object for update.py.
  +   */
     packageData = { package, attrPath }: {
       name = package.name;
       pname = lib.getName package;
  
positive.code:       in
          [x] ++ nubOn f xs;
  
    packagesWithPath = rootPath: cond: pkgs:
      let
        packagesWithPathInner = relativePath: pathContent:
          let
            result = builtins.tryEval pathContent;
  
  
negative.code:       if pathContent == null then
          builtins.throw "Attribute path `${path}` does not exists."
        else
          packagesWithPath prefix (path: pkg: builtins.hasAttr "updateScript" pkg)
                         pathContent;
  
    /* Find a package under `path` in `pkgs` and require that it has an updateScript.
     */
    packageByName = path: pkgs:
      let
          package = lib.attrByPath (lib.splitString "." path) null pkgs;
      in
        if package == null then
          builtins.throw "Package with an attribute name `${path}` does not exists."
        else if ! builtins.hasAttr "updateScript" package then
          builtins.throw "Package with an attribute name `${path}` does not have a `passthru.updateScript` attribute defined."
        else
          { attrPath = path; inherit package; };
  
    /* List of packages matched based on the CLI arguments.
     */
    packages =
      if package != null then
        [ (packageByName package pkgs) ]
      else if maintainer != null then
        packagesWithUpdateScriptAndMaintainer maintainer pkgs
      else if path != null then
        packagesWithUpdateScript path pkgs
      else
        builtins.throw "No arguments provided.\n\n${helpText}";
  
  