devtools/lib/modules/process_compose.nix

48 lines
964 B
Nix
Raw Normal View History

2025-12-19 15:04:26 +01:00
{
lib,
pkgs,
config,
...
}: let
inherit (lib) mkEnableOption mkOption mkIf types;
cfg = config.process-compose;
configFile = (pkgs.formats.yaml {}).generate "process-compose.yaml" cfg.config;
pcAlias = pkgs.writeTextFile {
name = "pc-alias";
destination = "/bin/${cfg.alias}";
executable = true;
text =
# sh
''
${pkgs.process-compose}/bin/process-compose --config "${configFile}" ''${@:1}
'';
};
in {
options.process-compose = {
enable =
mkEnableOption "Process-Compose"
// {
default = cfg.config != {};
};
alias = mkOption {
type = types.str;
default = "pc";
description = ''
Alias for `process-compose`.
'';
};
config = mkOption {
type = types.attrs;
default = {};
description = ''
Configure process-compose here.
'';
};
};
config = mkIf cfg.enable {
packages = [pcAlias];
};
}