aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix44
1 files changed, 42 insertions, 2 deletions
diff --git a/flake.nix b/flake.nix
index 0ecb3f5..5acb8dc 100644
--- a/flake.nix
+++ b/flake.nix
@@ -15,7 +15,43 @@
zshrc = loadrc ./zshrc.d;
packages = pkgs: rec {
- shellrc-completion = pkgs.stdenv.mkDerivation {
+ shellrc-generic = pkgs.stdenvNoCC.mkDerivation {
+ name = "shellrc-profile";
+ src = ./.;
+ installPhase = ''
+ mkdir -p "$out/etc/shellrc"
+ cp -r ./shellrc.d/. "$out/etc/shellrc/"
+ '';
+ };
+ shellrc-bashrc = pkgs.stdenvNoCC.mkDerivation {
+ name = "shellrc-profile-bash";
+ src = ./.;
+ shellrc = shellrc-generic;
+ installPhase = ''
+ mkdir -p "$out/etc/bashrc.d"
+ cp -r ./bashrc.d/. "$out/etc/bashrc.d/"
+ cat >"$out/etc/bashrc.d/shellrc" <<EOF
+ for sh in $shellrc/etc/shellrc/*; do
+ [ -r "\$sh" ] && . "\$sh"
+ done
+ EOF
+ '';
+ };
+ shellrc-zshrc = pkgs.stdenvNoCC.mkDerivation {
+ name = "shellrc-profile-zsh";
+ src = ./.;
+ shellrc = shellrc-generic;
+ installPhase = ''
+ mkdir -p "$out/etc/zshrc.d"
+ cp -r ./zshrc.d/. "$out/etc/zshrc.d/"
+ cat >"$out/etc/zshrc.d/shellrc" <<EOF
+ for sh in $shellrc/etc/shellrc/*; do
+ [ -r "\$sh" ] && . "\$sh"
+ done
+ EOF
+ '';
+ };
+ shellrc-completion = pkgs.stdenvNoCC.mkDerivation {
name = "shellrc-completion";
src = ./.;
nativeBuildInputs = [ pkgs.installShellFiles ];
@@ -28,7 +64,11 @@
done
'';
};
- default = shellrc-completion;
+ shellrc = pkgs.symlinkJoin {
+ name = "shellrc";
+ paths = [ shellrc-bashrc shellrc-zshrc shellrc-completion ];
+ };
+ default = shellrc;
};
in {