diff --git a/.gitignore b/.gitignore index 84665a91..fdb11042 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/.direnv /target .idea _site/ diff --git a/crates/aiken/src/main.rs b/crates/aiken/src/main.rs index c2b8c46d..370eb236 100644 --- a/crates/aiken/src/main.rs +++ b/crates/aiken/src/main.rs @@ -63,9 +63,12 @@ fn main() -> miette::Result<()> { } fn version() -> String { + use std::env; + let nix_git_rev = env::var("GIT_REVISION").unwrap_or("unknown".to_string()); + format!( "v{} {}", built_info::PKG_VERSION, - built_info::GIT_COMMIT_HASH_SHORT.unwrap_or("unknown") + built_info::GIT_COMMIT_HASH_SHORT.unwrap_or(&nix_git_rev) ) } diff --git a/flake.nix b/flake.nix index 52cd1df2..e3269e73 100644 --- a/flake.nix +++ b/flake.nix @@ -54,10 +54,18 @@ package = packages.aiken; } ]; - in rec { + + gitRev = if (builtins.hasAttr "rev" self) + then self.rev + else "dirty"; + in { inherit packages; devShell = rustPkgs.workspaceShell { packages = [deno]; + shellHook = + '' + export GIT_REVISION=${gitRev} + ''; }; devShells = { aiken = pkgs.devshell.mkShell {