Skip to content

Conversation

@daroot
Copy link
Contributor

@daroot daroot commented Aug 29, 2025

  • per-process description that displays in the UI
  • global and per-process log_configuration, including rotation
  • global and per-process vars for supporting Go template expansion on configs
  • env_cmds allows running host commands to populate env variables
  • ordered_shutdown controls the order of process shutdown
  • is_strict does additional checking on configuration files at startup
  • disable_env_expansion to not propagate .env variables to processes
  • http_get.{headers,status_code} and working_dir for probe commands
  • replicas to run multiple copies of processes
  • entrypoint alternate to command
  • is_elevated for sudo/runas priviledged processes
  • extends,is_disabled,is_dotenv_disabled for multi-file fragments and overrides.
  • launch_timeout_seconds for daemon processes

…1.7.3

- per-process `description` that displays in the UI
- global and per-process `log_configuration`, including `rotation`
- global and per-process `vars` for supporting Go template expansion on configs
- `env_cmds` allows running host commands to populate env variables
- `ordered_shutdown` controls the order of process shutdown
- `is_strict` does additional checking on configuration files at startup
- `disable_env_expansion` to not propagate .env variables to processes
- `http_get.{headers,status_code}` and `working_dir` for probe commands
- `replicas` to run multiple copies of processes
- `entrypoint` alternate to `command`
- `is_elevated` for sudo/runas priviledged processes
- `extends,is_disabled,is_dotenv_disabled` for multi-file fragments and overrides.
- `launch_timeout_seconds` for daemon processes
@nix-ci-app

This comment was marked as off-topic.

@srid
Copy link
Member

srid commented Sep 23, 2025

@shivaraj-bh Does this look good to be merged?

Copy link
Contributor

@adrian-gierakowski adrian-gierakowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we also add all env vars from here to here:

environment = mkOption {
default = { };
description = "Environment variables to pass to process-compose binary.";
type = types.submodule {
options = {
PC_DISABLE_TUI = mkOption {
type = types.nullOr types.bool;
default = null;
description = "Disable the TUI (Text User Interface) of process-compose";
};

Copy link
Contributor

@adrian-gierakowski adrian-gierakowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there are also some missing flags here, like disable-dotenv

@shivaraj-bh
Copy link
Collaborator

I want to use the options defined in this PR. Aside from 3 comments from @adrian-gierakowski and a small nit (about args) from me, this PR looks good.

@srid
Copy link
Member

srid commented Nov 5, 2025

@daroot Would you like to address these, so we can merge your PR?

- Make disable-dotenv default to true, per @adrian-gierakowski request.
- Remove unnecessary args in vars.nix
@daroot
Copy link
Contributor Author

daroot commented Nov 5, 2025

I've updated the missing env vars and addressing the args nit.

I'm less sure about adding all the individual cli options separately. Given you can do nix run -- <any command or options>, does it make sense to add any of these that are not critical to consistent functions across multiple invocations (like uds and port) or that can also already be set via env variables?

@shivaraj-bh
Copy link
Collaborator

shivaraj-bh commented Nov 6, 2025

I'm less sure about adding all the individual cli options separately. Given you can do nix run -- , does it make sense to add any of these that are not critical to consistent functions across multiple invocations (like uds and port) or that can also already be set via env variables?

@daroot
It is nice to define all the possible CLI options for the sake of completeness of the process-compose.cli module.

It might seems like a rather strange use-case, but:

I often use these settings to enforce certain cli options on the users of the app. For example,process-compose.cli.unix-socket = “<my-path>"; will prevent users (IIRC) from shooting oneself in the foot with PC_SOCKET_PATH env var that (unknowingly) might point to some other path in the users environment.

@shivaraj-bh
Copy link
Collaborator

It is nice to define all the possible CLI options for the sake of completeness of the process-compose.cli module.

These are not very crucial (as one can still use CLI args). Can be added later if needed

@shivaraj-bh shivaraj-bh merged commit 3b0318d into Platonic-Systems:main Dec 4, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants