53 lines
1017 B
Bash
53 lines
1017 B
Bash
![]() |
setupEnv () {
|
||
|
echo "Setting up .envrc"
|
||
|
if git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
|
||
|
insideGit;
|
||
|
else
|
||
|
outsideGit;
|
||
|
fi;
|
||
|
}
|
||
|
|
||
|
insideGit () {
|
||
|
echo "Inside of git environment"
|
||
|
cd $(git rev-parse --show-toplevel)
|
||
|
echo "Setting up inside $PWD"
|
||
|
echo "git add -f --intent-to-add flake.nix
|
||
|
use flake ." > .envrc
|
||
|
|
||
|
echo "Enabling environment"
|
||
|
direnv allow
|
||
|
|
||
|
setupFlake
|
||
|
}
|
||
|
|
||
|
outsideGit () {
|
||
|
echo "Outside of git environment"
|
||
|
echo "use flake . --impure" > .envrc
|
||
|
|
||
|
echo "Enabling environment"
|
||
|
direnv allow
|
||
|
|
||
|
setupFlake
|
||
|
}
|
||
|
|
||
|
setupFlake () {
|
||
|
if [ -e flake.nix ]; then
|
||
|
echo "flake.nix already exists."
|
||
|
return
|
||
|
fi;
|
||
|
|
||
|
echo "Setting up flake.nix"
|
||
|
echo "{
|
||
|
inputs.devenv.url = \"git+https://git.bulthuis.dev/Jan/dotfiles\";
|
||
|
outputs = { devenv, ... }: devenv.lib.mkShell { };
|
||
|
}" > flake.nix
|
||
|
}
|
||
|
|
||
|
echo "Creating dev environment"
|
||
|
|
||
|
if [ -e .envrc ]; then
|
||
|
echo ".envrc already exists."
|
||
|
setupFlake
|
||
|
else
|
||
|
setupEnv
|
||
|
fi;
|