write mkConfWrapper function for helix
this makes helix use the user config instead, if it exists
This commit is contained in:
parent
49be866f24
commit
332802c981
3 changed files with 40 additions and 12 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
owoLib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
|
@ -33,15 +34,9 @@ in
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.symlinkJoin {
|
(owoLib.mkConfWrapper "hx" cfg.package {
|
||||||
inherit name;
|
globalConfig = pkgs.writeText "${name}.toml" cfg.extraConfig;
|
||||||
paths = [ cfg.package ];
|
userConfig = "$HOME/${name}/config.toml";
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
||||||
postBuild = ''
|
|
||||||
wrapProgram $out/bin/hx \
|
|
||||||
--add-flags "-c" \
|
|
||||||
--add-flags "${pkgs.writeText "${name}.toml" cfg.extraConfig}"
|
|
||||||
'';
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
11
default.nix
11
default.nix
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
@ -18,8 +19,12 @@ in
|
||||||
enable = lib.mkEnableOption "common settings";
|
enable = lib.mkEnableOption "common settings";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = {
|
||||||
nixowos.cli.enable = true;
|
_module.args.owoLib = pkgs.callPackage ./lib { };
|
||||||
nixowos.system.enable = true;
|
|
||||||
|
nixowos = lib.mkIf cfg.enable {
|
||||||
|
cli.enable = true;
|
||||||
|
system.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
28
lib/default.nix
Normal file
28
lib/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
mkConfWrapper =
|
||||||
|
name: package:
|
||||||
|
{
|
||||||
|
globalConfig,
|
||||||
|
userConfig ? "$HOME/${name}/${name}.conf",
|
||||||
|
configArg ? "-c ",
|
||||||
|
excecutable ? "${package}/bin/${name}",
|
||||||
|
}:
|
||||||
|
pkgs.writeShellApplication {
|
||||||
|
inherit name;
|
||||||
|
|
||||||
|
runtimeInputs = [ package ];
|
||||||
|
|
||||||
|
text = ''
|
||||||
|
if test -r "${userConfig}"; then
|
||||||
|
exec -a "$0" "${excecutable}" "$@"
|
||||||
|
else
|
||||||
|
exec -a "$0" "${excecutable}" ${configArg}"${globalConfig}" "$@"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue