diff --git a/home-manager/nix-init-scripts.nix b/home-manager/nix-init-scripts.nix index 0d8e290..1f7bb00 100644 --- a/home-manager/nix-init-scripts.nix +++ b/home-manager/nix-init-scripts.nix @@ -1,10 +1,15 @@ { lib, pkgs, ... }: let - nix-prepare = '' + nix-prepare = pkgs.writeShellScript "nix-prepare" '' run() { - local dir + local dir="$1" echo "Preparing nix environment in $dir" + if [ "$dir" = "" ]; then + echo "Usage: nix-prepare " + exit 1 + fi + mkdir -p $dir cd $dir @@ -15,6 +20,7 @@ let chmod 644 flake.nix echo '/*' > .gitignore + echo '!/.gitignore' >> .gitignore echo '!/flake.nix' >> .gitignore echo '!/flake.lock' >> .gitignore echo 'use flake . --impure' > .envrc @@ -32,7 +38,7 @@ let run "$@" ''; - git-nix-clone = '' + git-nix-clone = pkgs.writeShellScript "git-nix-clone" '' # Input is a git repository such as git@github.com:group/project-name.git run() { local repo="$1" @@ -43,7 +49,7 @@ let exit 1 fi - nix-prepare "$projectName"-nix + ${nix-prepare} "$projectName"-nix git clone "$repo" "$projectName"-nix"/$projectName" } @@ -53,8 +59,8 @@ let in { programs.zsh.shellAliases = { - git-nix-clone = lib.mkDefault "${pkgs.writeShellScript "git-nix-clone" git-nix-clone}"; - nix-prepare = lib.mkDefault "${pkgs.writeShellScript "nix-prepare" nix-prepare}"; + git-nix-clone = lib.mkDefault "${git-nix-clone}"; + nix-prepare = lib.mkDefault "${nix-prepare}"; }; }