diff --git a/.envrc.example b/.envrc.example new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc.example @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index 67fecf1..6dd8916 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,7 @@ Thumbs.db npm-debug.log* yarn-debug.log* yarn-error.log* + +### direnv ### +.direnv +.envrc diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..2d45847 --- /dev/null +++ b/flake.lock @@ -0,0 +1,25 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", + "revCount": 897910, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.897910%2Brev-89c2b2330e733d6cdb5eae7b899326930c2c0648/019a9888-31f2-7667-abe4-5a1c43721ef0/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..e0925f4 --- /dev/null +++ b/flake.nix @@ -0,0 +1,49 @@ +{ + description = "dev env flake"; + + # Flake inputs + inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1"; # unstable Nixpkgs + + # Flake outputs + outputs = {self, ...} @ inputs: let + # The systems supported for this flake + supportedSystems = [ + "x86_64-linux" # 64-bit Intel/AMD Linux + "aarch64-linux" # 64-bit ARM Linux + "x86_64-darwin" # 64-bit Intel macOS + "aarch64-darwin" # 64-bit ARM macOS + ]; + + # Helper to provide system-specific attributes + forEachSupportedSystem = f: + inputs.nixpkgs.lib.genAttrs supportedSystems ( + system: + f { + pkgs = import inputs.nixpkgs {inherit system;}; + } + ); + in { + devShells = forEachSupportedSystem ( + {pkgs}: { + default = pkgs.mkShellNoCC { + # The Nix packages provided in the environment + # Add any you need here + packages = with pkgs; [ + go-task + + go + hugo + + nodejs + ]; + + # Set any environment variables for your dev shell + env = {}; + + # Add any shell logic you want executed any time the environment is activated + shellHook = ''''; + }; + } + ); + }; +}