dotfiles/common/users/homeModules/scripts/default.nix

89 lines
1.8 KiB
Nix

{
pkgs,
lib,
inputs,
...
}:
let
# cpkg = import ../../../../customPackages { inherit pkgs inputs; };
# https://discourse.nixos.org/t/how-to-create-a-script-with-dependencies/7970/6
mkScript =
{
name,
version ? "0.0.1",
file,
env ? [ ],
}:
pkgs.writeTextFile {
name = "${name}-${version}";
executable = true;
destination = "/bin/${name}";
text = ''
for i in ${lib.concatStringsSep " " env}; do
export PATH="$i/bin:$PATH"
done
exec ${pkgs.bash}/bin/bash ${file} $@
'';
};
in
{
imports = [
../../../../customPackages
];
home = {
packages = [
# env for clipboard command will be required by their respective environemnts
(mkScript {
name = "paste";
file = ./paste.sh;
})
(mkScript {
name = "copy";
file = ./copy.sh;
})
(mkScript {
name = "http2ssh";
file = ./http2ssh.sh;
env = [ pkgs.git ];
})
(mkScript {
name = "git_fetchAll";
file = ./git_fetchAll.sh;
env = [ pkgs.git ];
})
(mkScript {
name = "install_eslint";
file = ./install_eslint.sh;
})
(mkScript {
name = "math";
file = ./math.sh;
env = [ pkgs.python3 ];
})
(mkScript {
name = "hashi18n";
file = ./hashi18n.sh;
})
(mkScript {
name = "flakeify";
file = ./flakeify.sh;
env = [ pkgs.direnv ];
})
];
file = {
scripts = {
source = "${pkgs.cpkg.scripts}";
target = ".scripts";
};
};
shellAliases = {
paste = "${
(mkScript {
name = "paste";
file = ./paste.sh;
})
}/bin/paste";
};
};
}