diff --git a/docs/src/reference/options.md b/docs/src/reference/options.md index 46284dc7ea..7efe10f24c 100644 --- a/docs/src/reference/options.md +++ b/docs/src/reference/options.md @@ -25015,7 +25015,7 @@ one of “hivemind”, “honcho”, “mprocs”, “native”, “overmind”, *Default:* -` native ` for devenv 2.0+, ` process-compose ` otherwise +` native ` for devenv 2.0+ or flake integration, ` process-compose ` otherwise diff --git a/src/modules/process-managers/native.nix b/src/modules/process-managers/native.nix index 55292ab753..b95425c81e 100644 --- a/src/modules/process-managers/native.nix +++ b/src/modules/process-managers/native.nix @@ -193,13 +193,16 @@ in config.processes )); - # The actual process manager command will be invoked from devenv.rs - # We just need to provide the configuration via procfileScript + # In flake mode, the native process manager runs via devenv-tasks binary. + # The command backgrounds the process so procfileScript can manage it. process.manager.command = lib.mkDefault '' - # Native process manager is invoked directly from devenv up - # This script should not be reached - echo "Native process manager should be invoked from devenv up" >&2 - exit 1 + ${config.task.package}/bin/devenv-tasks run \ + --task-file ${config.task.config} \ + --mode all \ + --cache-dir ${lib.escapeShellArg config.devenv.dotfile} \ + --runtime-dir ${lib.escapeShellArg config.devenv.runtime} \ + ${lib.concatMapStringsSep " " (name: "devenv:processes:${name}") + (lib.attrNames (lib.filterAttrs (_: p: p.start.enable) config.processes))} & ''; }; } diff --git a/src/modules/processes.nix b/src/modules/processes.nix index 44ed328957..0557e99e51 100644 --- a/src/modules/processes.nix +++ b/src/modules/processes.nix @@ -349,8 +349,10 @@ in default = if config.devenv.cli.version != null && lib.versionAtLeast config.devenv.cli.version "2.0" then "native" + else if config.devenv.flakesIntegration + then "native" else "process-compose"; - defaultText = lib.literalMD "`native` for devenv 2.0+, `process-compose` otherwise"; + defaultText = lib.literalMD "`native` for devenv 2.0+ or flake integration, `process-compose` otherwise"; example = "process-compose"; };