diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..faa8210 --- /dev/null +++ b/.envrc @@ -0,0 +1,3 @@ +source_url "https://raw.githubusercontent.com/cachix/devenv/d1f7b48e35e6dee421cfd0f51481d17f77586997/direnvrc" "sha256-YBzqskFZxmNb3kYVoKD9ZixoPXJh1C9ZvTLGFRkauZ0=" + +use devenv diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..908db2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# Devenv +.devenv* +devenv.local.nix +/.direnv +.pre-commit-config.yaml diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..817d68e --- /dev/null +++ b/devenv.lock @@ -0,0 +1,174 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1718120801, + "owner": "cachix", + "repo": "devenv", + "rev": "a04f29f6412e5829ee7774c672233f3ef17771bc", + "treeHash": "c75398c2d196caa306b583e44b37f735a455237e", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "treeHash": "2addb7b71a20a25ea74feeaf5c2f6a6b30898ecb", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "treeHash": "2addb7b71a20a25ea74feeaf5c2f6a6b30898ecb", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "treeHash": "ca14199cabdfe1a06a7b1654c76ed49100a689f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1718089647, + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f7207adcc68d9cafa29e3cd252a18743ae512c6a", + "treeHash": "1eabeb4cad65cd84d077e9cf28b3be697a5e579b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-python": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1717766341, + "owner": "cachix", + "repo": "nixpkgs-python", + "rev": "d996260c2dfb1e4e6a68bb99121dd87adb40c2eb", + "treeHash": "d6bb915bafaac1f4b2bedeb18acda30e6b5d798f", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "nixpkgs-python", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1718060059, + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a3c8d64ba846725f040582b2d3b875466d2115bd", + "treeHash": "4378720d991b2af92b2e078b80bff5ec363a11c5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1718060059, + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a3c8d64ba846725f040582b2d3b875466d2115bd", + "treeHash": "4378720d991b2af92b2e078b80bff5ec363a11c5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1717664902, + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1", + "treeHash": "def977583217aad11744d144c1f7fc216ce450bf", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "nixpkgs": "nixpkgs", + "nixpkgs-python": "nixpkgs-python", + "pre-commit-hooks": "pre-commit-hooks" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..e803522 --- /dev/null +++ b/devenv.nix @@ -0,0 +1,38 @@ +# https://devenv.sh/ +# +{pkgs, ...}: { + packages = with pkgs; [ + ansible + codespell + just + onefetch + ]; + + pre-commit.hooks = { + # Files + check-symlinks.enable = true; + # Nix + alejandra.enable = true; + deadnix.enable = true; + statix.enable = true; + # Shell + shellcheck.enable = true; + shfmt.enable = true; # alternative: beautysh + # Misc. formats + check-json.enable = true; + check-toml.enable = true; + check-yaml.enable = true; + denofmt.enable = true; + markdownlint.enable = true; # alternative: mdl + # Hyperlinks + check-vcs-permalinks.enable = true; + end-of-file-fixer.enable = true; + trim-trailing-whitespace.enable = true; + # Git + check-merge-conflicts.enable = true; + }; + + enterShell = '' + onefetch --no-color-palette + ''; +} diff --git a/devenv.yaml b/devenv.yaml new file mode 100644 index 0000000..a32e623 --- /dev/null +++ b/devenv.yaml @@ -0,0 +1,5 @@ +inputs: + nixpkgs: + url: github:NixOS/nixpkgs/nixpkgs-unstable + nixpkgs-python: + url: github:cachix/nixpkgs-python