mirror of
https://github.com/nix-community/home-manager
synced 2024-12-23 18:29:47 +01:00
pls: add module (#3285)
This commit is contained in:
parent
864ff685fe
commit
e7be7c4688
9 changed files with 150 additions and 0 deletions
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
|
@ -243,6 +243,9 @@ Makefile @thiagokokada
|
|||
|
||||
/modules/programs/piston-cli.nix @ethancedwards8
|
||||
|
||||
/modules/programs/pls.nix @arjan-s
|
||||
/tests/modules/programs/pls @arjan-s
|
||||
|
||||
/modules/programs/powerline-go.nix @DamienCassou
|
||||
|
||||
/modules/programs/pubs.nix @loicreynier
|
||||
|
|
|
@ -719,6 +719,13 @@ in
|
|||
A new module is available: 'programs.tmate'.
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
time = "2022-09-29T13:43:02+00:00";
|
||||
message = ''
|
||||
A new module is available: 'programs.pls'.
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -142,6 +142,7 @@ let
|
|||
./programs/pidgin.nix
|
||||
./programs/pistol.nix
|
||||
./programs/piston-cli.nix
|
||||
./programs/pls.nix
|
||||
./programs/powerline-go.nix
|
||||
./programs/pubs.nix
|
||||
./programs/pylint.nix
|
||||
|
|
36
modules/programs/pls.nix
Normal file
36
modules/programs/pls.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.programs.pls;
|
||||
|
||||
aliases = {
|
||||
ls = "${cfg.package}/bin/pls";
|
||||
ll =
|
||||
"${cfg.package}/bin/pls -d perms -d user -d group -d size -d mtime -d git";
|
||||
};
|
||||
|
||||
in {
|
||||
meta.maintainers = [ hm.maintainers.kalhauge ];
|
||||
|
||||
options.programs.pls = {
|
||||
enable =
|
||||
mkEnableOption "pls, a modern replacement for <command>ls</command>";
|
||||
|
||||
package = mkPackageOption pkgs "pls" { };
|
||||
|
||||
enableAliases = mkEnableOption "recommended pls aliases";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
|
||||
programs.bash.shellAliases = mkIf cfg.enableAliases aliases;
|
||||
|
||||
programs.fish.shellAliases = mkIf cfg.enableAliases aliases;
|
||||
|
||||
programs.zsh.shellAliases = mkIf cfg.enableAliases aliases;
|
||||
};
|
||||
}
|
|
@ -102,6 +102,7 @@ import nmt {
|
|||
./modules/programs/pandoc
|
||||
./modules/programs/pet
|
||||
./modules/programs/pistol
|
||||
./modules/programs/pls
|
||||
./modules/programs/powerline-go
|
||||
./modules/programs/pubs
|
||||
./modules/programs/qutebrowser
|
||||
|
|
29
tests/modules/programs/pls/bash.nix
Normal file
29
tests/modules/programs/pls/bash.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs = {
|
||||
bash.enable = true;
|
||||
|
||||
pls = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
package = config.lib.test.mkStubPackage { outPath = "@pls@"; };
|
||||
};
|
||||
};
|
||||
|
||||
test.stubs.pls = { };
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.bashrc
|
||||
assertFileContains \
|
||||
home-files/.bashrc \
|
||||
"alias ls='@pls@/bin/pls'"
|
||||
assertFileContains \
|
||||
home-files/.bashrc \
|
||||
"alias ll='@pls@/bin/pls -d perms -d user -d group -d size -d mtime -d git'"
|
||||
'';
|
||||
};
|
||||
}
|
5
tests/modules/programs/pls/default.nix
Normal file
5
tests/modules/programs/pls/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
pls-bash = ./bash.nix;
|
||||
pls-fish = ./fish.nix;
|
||||
pls-zsh = ./zsh.nix;
|
||||
}
|
36
tests/modules/programs/pls/fish.nix
Normal file
36
tests/modules/programs/pls/fish.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs = {
|
||||
fish.enable = true;
|
||||
|
||||
pls = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
package = config.lib.test.mkStubPackage { outPath = "@pls@"; };
|
||||
};
|
||||
};
|
||||
|
||||
# Needed to avoid error with dummy fish package.
|
||||
xdg.dataFile."fish/home-manager_generated_completions".source =
|
||||
mkForce (builtins.toFile "empty" "");
|
||||
|
||||
test.stubs = {
|
||||
pls = { };
|
||||
fish = { };
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.config/fish/config.fish
|
||||
assertFileContains \
|
||||
home-files/.config/fish/config.fish \
|
||||
"alias ls '@pls@/bin/pls'"
|
||||
assertFileContains \
|
||||
home-files/.config/fish/config.fish \
|
||||
"alias ll '@pls@/bin/pls -d perms -d user -d group -d size -d mtime -d git'"
|
||||
'';
|
||||
};
|
||||
}
|
32
tests/modules/programs/pls/zsh.nix
Normal file
32
tests/modules/programs/pls/zsh.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
|
||||
pls = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
package = config.lib.test.mkStubPackage { outPath = "@pls@"; };
|
||||
};
|
||||
};
|
||||
|
||||
test.stubs = {
|
||||
pls = { };
|
||||
zsh = { };
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.zshrc
|
||||
assertFileContains \
|
||||
home-files/.zshrc \
|
||||
"alias ls='@pls@/bin/pls'"
|
||||
assertFileContains \
|
||||
home-files/.zshrc \
|
||||
"alias ll='@pls@/bin/pls -d perms -d user -d group -d size -d mtime -d git'"
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue