pls: add module (#3285)

This commit is contained in:
arjan-s 2022-09-30 18:53:39 +02:00 committed by GitHub
parent 864ff685fe
commit e7be7c4688
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 150 additions and 0 deletions

3
.github/CODEOWNERS vendored
View File

@ -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

View File

@ -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'.
'';
}
];
};
}

View File

@ -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
View 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;
};
}

View File

@ -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

View 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'"
'';
};
}

View File

@ -0,0 +1,5 @@
{
pls-bash = ./bash.nix;
pls-fish = ./fish.nix;
pls-zsh = ./zsh.nix;
}

View 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'"
'';
};
}

View 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'"
'';
};
}