diff --git a/user-modules/default.nix b/user-modules/default.nix index 6b643fc..5d77398 100644 --- a/user-modules/default.nix +++ b/user-modules/default.nix @@ -22,6 +22,7 @@ ./obsidian/default.nix ./rofi/default.nix ./rofi/rofi-rbw.nix + ./scripts/default.nix ./shell/default.nix ./shell/bash.nix ./shell/fish.nix diff --git a/user-modules/scripts/default.nix b/user-modules/scripts/default.nix new file mode 100644 index 0000000..5bbfc98 --- /dev/null +++ b/user-modules/scripts/default.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + pkgs, + ... +}: + +with lib; +let + cfg = config.modules.scripts; +in +{ + options.modules.scripts.enable = mkEnableOption "scripts"; + + config = mkIf cfg.enable { + # home.packages = with pkgs; map (path: (writeShellScriptBin "${path}" (readFile path))) scripts; + home.packages = with pkgs; [ + (writeShellScriptBin "mkenv" (readFile ./mkenv.sh)) + ]; + }; +} diff --git a/user-modules/scripts/mkenv.sh b/user-modules/scripts/mkenv.sh new file mode 100644 index 0000000..76df1d4 --- /dev/null +++ b/user-modules/scripts/mkenv.sh @@ -0,0 +1,53 @@ +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; \ No newline at end of file diff --git a/users/jan.nix b/users/jan.nix index 0a131c4..9cd4d68 100644 --- a/users/jan.nix +++ b/users/jan.nix @@ -68,7 +68,7 @@ # Gaming steam.enable = true; modrinth.enable = true; - es-de.enable = true; + es-de.enable = false; retroarch.enable = true; ryujinx.enable = true; @@ -82,6 +82,13 @@ enable = true; user = "Jan-Bulthuis"; email = "git@bulthuis.dev"; + # TODO: Move + ignores = [ + ".envrc" + ".direnv" + "flake.nix" + "flake.lock" + ]; }; btop.enable = true; fish.enable = true; @@ -91,6 +98,7 @@ zathura.enable = true; eduvpn.enable = true; keyring.enable = true; + scripts.enable = true; # Development neovim.enable = true;