summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.envrc7
-rw-r--r--.gitignore11
-rw-r--r--devenv.lock65
-rw-r--r--devenv.nix58
-rw-r--r--devenv.yaml18
5 files changed, 159 insertions, 0 deletions
diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..d9f8be7
--- /dev/null
+++ b/.envrc
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+eval "$(devenv direnvrc)"
+
+# You can pass flags to the devenv command
+# For example: use devenv --impure --option services.postgres.enable:bool true
+use devenv
diff --git a/.gitignore b/.gitignore
index b8e547d..1aaab13 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,14 @@
/target
perf.*
profile.svg
+
+# Devenv
+.devenv*
+devenv.local.nix
+devenv.local.yaml
+
+# direnv
+.direnv
+
+# pre-commit
+.pre-commit-config.yaml
diff --git a/devenv.lock b/devenv.lock
new file mode 100644
index 0000000..b2e8779
--- /dev/null
+++ b/devenv.lock
@@ -0,0 +1,65 @@
+{
+ "nodes": {
+ "devenv": {
+ "locked": {
+ "dir": "src/modules",
+ "lastModified": 1784630606,
+ "narHash": "sha256-P14j5mWQMhS4q8X/GPWTu0ibtolXvwLIwY/DUCcLaaE=",
+ "owner": "cachix",
+ "repo": "devenv",
+ "rev": "3ed1df36d10ab30ce537e21460f5cac1f13df27f",
+ "type": "github"
+ },
+ "original": {
+ "dir": "src/modules",
+ "owner": "cachix",
+ "repo": "devenv",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "inputs": {
+ "nixpkgs-src": "nixpkgs-src"
+ },
+ "locked": {
+ "lastModified": 1783345554,
+ "narHash": "sha256-LZhOm4kqjHUnwP4CNHpaqqEVcumGNd1PvOEOad8LkS0=",
+ "owner": "cachix",
+ "repo": "devenv-nixpkgs",
+ "rev": "6004ea8c229fe9d41b21c6f4c76bf6c2e10771dd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "ref": "rolling",
+ "repo": "devenv-nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-src": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1783279667,
+ "narHash": "sha256-/NAkDSsve+GNM0Bt6tleJdCGfsTlK89nPjkVOzZMo0s=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "f205b5574fd0cb7da5b702a2da51507b7f4fdd1b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "devenv": "devenv",
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+} \ No newline at end of file
diff --git a/devenv.nix b/devenv.nix
new file mode 100644
index 0000000..6db7400
--- /dev/null
+++ b/devenv.nix
@@ -0,0 +1,58 @@
+{ pkgs, lib, config, inputs, ... }:
+
+{
+ # https://devenv.sh/basics/
+ env.GREET = "devenv";
+
+ # https://devenv.sh/packages/
+ packages = [
+ pkgs.git
+ # Needed by Emacs (flycheck-rust/eglot) outside of a full rustup env
+ pkgs.rust-analyzer
+ pkgs.rustfmt
+ pkgs.clippy
+ # System libraries required by pangocairo (via pkg-config)
+ pkgs.pkg-config
+ pkgs.glib
+ pkgs.cairo
+ pkgs.pango
+ pkgs.harfbuzz
+ ];
+
+ # https://devenv.sh/languages/
+ languages.rust.enable = true;
+
+ # https://devenv.sh/processes/
+ # processes.dev.exec = "${lib.getExe pkgs.watchexec} -n -- ls -la";
+
+ # https://devenv.sh/services/
+ # services.postgres.enable = true;
+
+ # https://devenv.sh/scripts/
+ scripts.hello.exec = ''
+ echo hello from $GREET
+ '';
+
+ # https://devenv.sh/basics/
+ enterShell = ''
+ hello # Run scripts directly
+ git --version # Use packages
+ '';
+
+ # https://devenv.sh/tasks/
+ # tasks = {
+ # "myproj:setup".exec = "mytool build";
+ # "devenv:enterShell".after = [ "myproj:setup" ];
+ # };
+
+ # https://devenv.sh/tests/
+ enterTest = ''
+ echo "Running tests"
+ git --version | grep --color=auto "${pkgs.git.version}"
+ '';
+
+ # https://devenv.sh/git-hooks/
+ # git-hooks.hooks.shellcheck.enable = true;
+
+ # See full reference at https://devenv.sh/reference/options/
+}
diff --git a/devenv.yaml b/devenv.yaml
new file mode 100644
index 0000000..3dcab58
--- /dev/null
+++ b/devenv.yaml
@@ -0,0 +1,18 @@
+# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json
+inputs:
+ nixpkgs:
+ url: github:cachix/devenv-nixpkgs/rolling
+
+# If you're using non-OSS software, you can set allow_unfree to true.
+# allow_unfree: true
+
+# If you're not willing to allow unsupported packages:
+# allow_unsupported_system: false
+
+# If you're willing to use a package that's vulnerable
+# permitted_insecure_packages:
+# - "openssl-1.1.1w"
+
+# If you have more than one devenv you can merge them
+#imports:
+# - ./backend