fish: apply nixfmt

This commit is contained in:
Robert Helgesson 2020-02-20 00:16:01 +01:00
parent 57bd27b3e7
commit 543118ac70
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
2 changed files with 97 additions and 107 deletions

1
format
View file

@ -39,7 +39,6 @@ find . -name '*.nix' \
! -path ./modules/programs/bash.nix \ ! -path ./modules/programs/bash.nix \
! -path ./modules/programs/emacs.nix \ ! -path ./modules/programs/emacs.nix \
! -path ./modules/programs/firefox.nix \ ! -path ./modules/programs/firefox.nix \
! -path ./modules/programs/fish.nix \
! -path ./modules/programs/gpg.nix \ ! -path ./modules/programs/gpg.nix \
! -path ./modules/programs/lesspipe.nix \ ! -path ./modules/programs/lesspipe.nix \
! -path ./modules/programs/neovim.nix \ ! -path ./modules/programs/neovim.nix \

View file

@ -36,9 +36,7 @@ let
aliasesStr = concatStringsSep "\n" aliasesStr = concatStringsSep "\n"
(mapAttrsToList (k: v: "alias ${k} ${escapeShellArg v}") cfg.shellAliases); (mapAttrsToList (k: v: "alias ${k} ${escapeShellArg v}") cfg.shellAliases);
in in {
{
options = { options = {
programs.fish = { programs.fish = {
enable = mkEnableOption "fish, the friendly interactive shell"; enable = mkEnableOption "fish, the friendly interactive shell";
@ -55,7 +53,10 @@ in
shellAliases = mkOption { shellAliases = mkOption {
type = with types; attrsOf str; type = with types; attrsOf str;
default = { }; default = { };
example = { ".." = "cd .."; ll = "ls -l"; }; example = {
".." = "cd ..";
ll = "ls -l";
};
description = '' description = ''
An attribute set that maps aliases (the top level attribute names An attribute set that maps aliases (the top level attribute names
in this option) to command strings or directly to build outputs. in this option) to command strings or directly to build outputs.
@ -158,26 +159,20 @@ in
}; };
config = mkIf cfg.enable (mkMerge [{ config = mkIf cfg.enable (mkMerge [
{
home.packages = [ cfg.package ]; home.packages = [ cfg.package ];
xdg.dataFile."fish/home-manager_generated_completions".source = xdg.dataFile."fish/home-manager_generated_completions".source = let
let
# paths later in the list will overwrite those already linked # paths later in the list will overwrite those already linked
destructiveSymlinkJoin = destructiveSymlinkJoin = args_@{ name, paths, preferLocalBuild ? true
args_@{ name , allowSubstitutes ? false, postBuild ? "", ... }:
, paths
, preferLocalBuild ? true
, allowSubstitutes ? false
, postBuild ? ""
, ...
}:
let let
args = removeAttrs args_ [ "name" "postBuild" ] args = removeAttrs args_ [ "name" "postBuild" ] // {
// { inherit preferLocalBuild allowSubstitutes; }; # pass the defaults # pass the defaults
in pkgs.runCommand name args inherit preferLocalBuild allowSubstitutes;
'' };
in pkgs.runCommand name args ''
mkdir -p $out mkdir -p $out
for i in $paths; do for i in $paths; do
if [ -z "$(find $i -prune -empty)" ]; then if [ -z "$(find $i -prune -empty)" ]; then
@ -186,16 +181,15 @@ in
done done
${postBuild} ${postBuild}
''; '';
generateCompletions = package: pkgs.runCommand
"${package.name}-fish-completions" generateCompletions = package:
{ pkgs.runCommand "${package.name}-fish-completions" {
src = package; src = package;
nativeBuildInputs = [ pkgs.python2 ]; nativeBuildInputs = [ pkgs.python2 ];
buildInputs = [ cfg.package ]; buildInputs = [ cfg.package ];
preferLocalBuild = true; preferLocalBuild = true;
allowSubstitutes = false; allowSubstitutes = false;
} } ''
''
mkdir -p $out mkdir -p $out
if [ -d $src/share/man ]; then if [ -d $src/share/man ]; then
find $src/share/man -type f \ find $src/share/man -type f \
@ -203,14 +197,11 @@ in
> /dev/null > /dev/null
fi fi
''; '';
in in destructiveSymlinkJoin {
destructiveSymlinkJoin {
name = "${config.home.username}-fish-completions"; name = "${config.home.username}-fish-completions";
paths = paths =
let let cmp = (a: b: (a.meta.priority or 0) > (b.meta.priority or 0));
cmp = (a: b: (a.meta.priority or 0) > (b.meta.priority or 0)); in map generateCompletions (sort cmp config.home.packages);
in
map generateCompletions (sort cmp config.home.packages);
}; };
programs.fish.interactiveShellInit = '' programs.fish.interactiveShellInit = ''
@ -279,25 +270,25 @@ in
end end
''; '';
}
} { {
xdg.configFile = mapAttrs' (fName: fBody: { xdg.configFile = mapAttrs' (fName: fBody: {
name = "fish/functions/${fName}.fish"; name = "fish/functions/${fName}.fish";
value = {"text" = '' value = {
"text" = ''
function ${fName} function ${fName}
${fBody} ${fBody}
end end
'';}; '';
};
}) cfg.functions; }) cfg.functions;
} }
# Each plugin gets a corresponding conf.d/plugin-NAME.fish file to load # Each plugin gets a corresponding conf.d/plugin-NAME.fish file to load
# in the paths and any initialization scripts. # in the paths and any initialization scripts.
(mkIf (length cfg.plugins > 0) { (mkIf (length cfg.plugins > 0) {
xdg.configFile = mkMerge ( xdg.configFile = mkMerge ((map (plugin: {
(map (plugin: { "fish/conf.d/plugin-${plugin.name}.fish".text = '' "fish/conf.d/plugin-${plugin.name}.fish".text = ''
# Plugin ${plugin.name} # Plugin ${plugin.name}
set -l plugin_dir ${plugin.src} set -l plugin_dir ${plugin.src}