devtools/lib/modules/cocogitto.nix

49 lines
1.1 KiB
Nix

{
lib,
pkgs,
config,
...
}: let
inherit (lib) mkEnableOption mkOption mkIf types assertMsg versionAtLeast;
cfg = config.cocogitto;
configFile = (pkgs.formats.toml {}).generate "cog.toml" cfg.config;
cogAlias = assert assertMsg (versionAtLeast pkgs.cocogitto.version "6.4")
"cocogitto needs to be version 6.4 or higher to support the --config param";
pkgs.writeTextFile {
name = "cog-alias";
destination = "/bin/${cfg.alias}";
executable = true;
text =
# sh
''
${pkgs.cocogitto}/bin/cog --config "${configFile}" ''${@:1}
'';
};
in {
options.cocogitto = {
enable =
mkEnableOption "Cocogitto"
// {
default = cfg.config != {};
};
alias = mkOption {
type = types.str;
default = "cog";
description = ''
Alias for `cog`.
'';
};
config = mkOption {
type = types.attrs;
default = {};
description = ''
Configure cocogitto here.
'';
};
};
config = mkIf cfg.enable {
packages = [cogAlias];
};
}