Unverified Commit a36fa1e8 authored by github-actions[bot]'s avatar github-actions[bot] Committed by GitHub
Browse files

Merge master into staging-next

parents 4fad563a a4cb0cad
Loading
Loading
Loading
Loading
+27 −46
Original line number Diff line number Diff line
@@ -18,7 +18,10 @@ let
    ;

  inherit (lib.filesystem)
    pathIsDirectory
    pathIsRegularFile
    pathType
    packagesFromDirectoryRecursive
    ;

  inherit (lib.strings)
@@ -386,51 +389,29 @@ in
      ...
    }:
    let
      # Determine if a directory entry from `readDir` indicates a package or
      # directory of packages.
      directoryEntryIsPackage = basename: type:
        type == "directory" || hasSuffix ".nix" basename;

      # List directory entries that indicate packages in the given `path`.
      packageDirectoryEntries = path:
        filterAttrs directoryEntryIsPackage (readDir path);

      # Transform a directory entry (a `basename` and `type` pair) into a
      # package.
      directoryEntryToAttrPair = subdirectory: basename: type:
        let
          path = subdirectory + "/${basename}";
      inherit (lib) concatMapAttrs removeSuffix;
      inherit (lib.path) append;
      defaultPath = append directory "package.nix";
    in
        if type == "regular"
        then
        {
          name = removeSuffix ".nix" basename;
          value = callPackage path { };
        }
        else
        if type == "directory"
        then
        {
          name = basename;
          value = packagesFromDirectory path;
        }
        else
        throw
    if pathExists defaultPath then
      # if `${directory}/package.nix` exists, call it directly
      callPackage defaultPath {}
    else concatMapAttrs (name: type:
      # otherwise, for each directory entry
      let path = append directory name; in
      if type == "directory" then {
        # recurse into directories
        "${name}" = packagesFromDirectoryRecursive {
          inherit callPackage;
          directory = path;
        };
      } else if type == "regular" && hasSuffix ".nix" name then {
        # call .nix files
        "${removeSuffix ".nix" name}" = callPackage path {};
      } else if type == "regular" then {
        # ignore non-nix files
      } else throw ''
        lib.filesystem.packagesFromDirectoryRecursive: Unsupported file type ${type} at path ${toString path}
      ''
            lib.filesystem.packagesFromDirectoryRecursive: Unsupported file type ${type} at path ${toString subdirectory}
          '';

      # Transform a directory into a package (if there's a `package.nix`) or
      # set of packages (otherwise).
      packagesFromDirectory = path:
        let
          defaultPackagePath = path + "/package.nix";
        in
        if pathExists defaultPackagePath
        then callPackage defaultPackagePath { }
        else mapAttrs'
          (directoryEntryToAttrPair path)
          (packageDirectoryEntries path);
    in
    packagesFromDirectory directory;
    ) (builtins.readDir directory);
}
+13 −0
Original line number Diff line number Diff line
@@ -44,6 +44,19 @@ with lib.maintainers;
    enableFeatureFreezePing = true;
  };

  android = {
    members = [
      numinit
      hadilq
      RossComputerGuy
      adrian-gierakowski
    ];
    scope = "Maintain Android-related tooling in nixpkgs.";
    githubTeams = [ "android" ];
    shortName = "Android";
    enableFeatureFreezePing = true;
  };

  bazel = {
    members = [
      mboes
+2 −2
Original line number Diff line number Diff line
@@ -598,7 +598,7 @@ in
    ];

    systemd.services.NetworkManager = {
      wantedBy = [ "network.target" ];
      wantedBy = [ "multi-user.target" ];
      restartTriggers = [ configFile ];

      aliases = [ "dbus-org.freedesktop.NetworkManager.service" ];
@@ -614,7 +614,7 @@ in
    };

    systemd.services.NetworkManager-dispatcher = {
      wantedBy = [ "network.target" ];
      wantedBy = [ "multi-user.target" ];
      restartTriggers = [
        configFile
        overrideNameserversScript
+11 −0
Original line number Diff line number Diff line
@@ -33,6 +33,17 @@ let
    };
  } extraConfig;
  testCases = {
    startup = {
      name = "startup";
      nodes.client = {
        networking.useDHCP = false;
        networking.networkmanager.enable = true;
      };
      testScript = ''
        with subtest("NetworkManager is started automatically at boot"):
          client.wait_for_unit("NetworkManager.service")
      '';
    };
    static = {
      name = "static";
      nodes = {
+419 −419

File changed.

Preview size limit exceeded, changes collapsed.

Loading