{
pkgs,
sysLib,
shell_library,
system,
...
}: let
functionCall = {
name,
dependencies,
replacementStrings,
...
}:
sysLib.writeShellScript {
inherit name;
src = ./scripts/${name}.sh;
keepPath = true;
dependencies = dependencies ++ (builtins.attrValues {inherit (pkgs) dash coreutils;});
inherit replacementStrings;
}
+ "/bin/${name}";
shell = {
name,
dependencies,
replacementStrings ? null,
...
}: ''
''${{
${functionCall {inherit name dependencies replacementStrings;}}
}}
''; # closes the lf tui
pipe = {
name,
dependencies,
replacementStrings ? null,
...
}: ''
%{{
${functionCall {inherit name dependencies replacementStrings;}}
}}
''; # runs the command in the ui/term bar
async = {
name,
dependencies,
replacementStrings ? null,
...
}: ''
&{{
${functionCall {inherit name dependencies replacementStrings;}}
}}
''; # runs the command in the background
wait = {
name,
dependencies,
replacementStrings ? null,
...
}: ''
!{{
${functionCall {inherit name dependencies replacementStrings;}}
}}
''; # adds a prompt after the command has run
in {
archive = shell {
name = "archive";
dependencies = builtins.attrValues {
inherit
(pkgs)
fzf
gnutar
xz
p7zip
zip
;
};
};
broot_jump = shell {
name = "broot_jump";
dependencies = builtins.attrValues {
inherit (pkgs) broot;
};
};
chmod = pipe {
name = "chmod";
dependencies = [];
};
clear_trash = shell {
name = "clear_trash";
dependencies = builtins.attrValues {
inherit
(pkgs)
fzf
trashy
;
};
};
dl_file = pipe {
name = "dl_file";
dependencies = builtins.attrValues {
inherit
(pkgs)
xdragon
curl
;
};
};
dragon = pipe {
name = "dragon";
dependencies = builtins.attrValues {
inherit
(pkgs)
xdragon
;
};
};
dragon_individual = pipe {
name = "dragon_individual";
dependencies = builtins.attrValues {
inherit
(pkgs)
xdragon
;
};
};
dragon_stay = pipe {
name = "dragon_stay";
dependencies = builtins.attrValues {
inherit
(pkgs)
xdragon
;
};
};
execute = shell {
name = "execute";
dependencies = [];
};
follow_link = pipe {
name = "follow_link";
dependencies = with pkgs; [lf];
};
fzf_jump = shell {
name = "fzf_jump";
dependencies = builtins.attrValues {
inherit (pkgs) fzf lf gnused;
};
};
mk_dir = pipe {
name = "mk_dir";
dependencies = [];
};
mk_file = shell {
name = "mk_file";
dependencies = [];
};
mk_file_and_edit = shell {
name = "mk_file_and_edit";
dependencies = [];
};
mk_ln = pipe {
name = "mk_ln";
dependencies = [];
};
mk_scr_default = shell {
name = "mk_scr_default";
dependencies = builtins.attrValues {};
replacementStrings = {
SHELL_LIBRARY_TEMPLATE = "${shell_library.rawTemplate."${system}"}";
};
};
mk_scr_temp = shell {
name = "mk_scr_temp";
dependencies = builtins.attrValues {};
replacementStrings = {
SHELL_LIBRARY_TEMPLATE = "${shell_library.rawTemplate."${system}"}";
TO_BE_SHELL_LIBRARY_PATH = "%SHELL_LIBRARY_PATH"; # replacement is not recursive
};
};
view_file = async {
name = "view_file";
dependencies = builtins.attrValues {inherit (pkgs) file;};
};
go_project_base_directory = async {
name = "go_project_root";
dependencies = [];
};
restore_trash = shell {
name = "restore_trash";
dependencies = builtins.attrValues {
inherit
(pkgs)
fzf
trashy
;
};
};
set_wall_paper = pipe {
name = "set_wall_paper";
dependencies = [];
};
stripspace = pipe {
name = "stripspace";
dependencies = [];
};
trash = pipe {
name = "trash";
dependencies = builtins.attrValues {
inherit
(pkgs)
trashy
trash-cli
findutils
;
};
};
unarchive = pipe {
name = "unarchive";
dependencies = builtins.attrValues {
inherit
(pkgs)
gnutar
unzip
p7zip
;
};
};
}