Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:
nix-build ci -A fmt.check
This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).
This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).
Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase).
If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
66 lines
1.6 KiB
Nix
66 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
writeShellApplication,
|
|
fish,
|
|
writeTextFile,
|
|
}:
|
|
|
|
lib.makeOverridable (
|
|
{
|
|
completionDirs ? [ ],
|
|
functionDirs ? [ ],
|
|
confDirs ? [ ],
|
|
pluginPkgs ? [ ],
|
|
localConfig ? "",
|
|
shellAliases ? { },
|
|
runtimeInputs ? [ ],
|
|
}:
|
|
|
|
let
|
|
aliasesStr = builtins.concatStringsSep "\n" (
|
|
lib.mapAttrsToList (k: v: "alias ${k} ${lib.escapeShellArg v}") shellAliases
|
|
);
|
|
|
|
shellAliasesFishConfig = writeTextFile {
|
|
name = "wrapfish.aliases.fish";
|
|
destination = "/share/fish/vendor_conf.d/aliases.fish";
|
|
text = ''
|
|
status is-interactive; and begin
|
|
# Aliases
|
|
${aliasesStr}
|
|
end
|
|
'';
|
|
};
|
|
|
|
localFishConfig = writeTextFile {
|
|
name = "wrapfish.local.fish";
|
|
destination = "/share/fish/vendor_conf.d/config.local.fish";
|
|
text = localConfig;
|
|
};
|
|
|
|
vendorDir = kind: plugin: "${plugin}/share/fish/vendor_${kind}.d";
|
|
complPath = completionDirs ++ map (vendorDir "completions") pluginPkgs;
|
|
funcPath = functionDirs ++ map (vendorDir "functions") pluginPkgs;
|
|
confPath =
|
|
confDirs
|
|
++ (map (vendorDir "conf") pluginPkgs)
|
|
++ (map (vendorDir "conf") [
|
|
localFishConfig
|
|
shellAliasesFishConfig
|
|
]);
|
|
|
|
in
|
|
writeShellApplication {
|
|
inherit runtimeInputs;
|
|
name = "fish";
|
|
text = ''
|
|
${fish}/bin/fish --init-command "
|
|
set --prepend fish_complete_path ${lib.escapeShellArgs complPath}
|
|
set --prepend fish_function_path ${lib.escapeShellArgs funcPath}
|
|
set --local fish_conf_source_path ${lib.escapeShellArgs confPath}
|
|
for c in \$fish_conf_source_path/*; source \$c; end
|
|
" "$@"
|
|
'';
|
|
}
|
|
)
|