diff --git a/update-scripts/default.nix b/update-scripts/default.nix index eb9e0cb2..ddcc9292 100644 --- a/update-scripts/default.nix +++ b/update-scripts/default.nix @@ -17,4 +17,5 @@ lib.fix (self: { none-ls-builtins = pkgs.callPackage ./none-ls.nix { }; rust-analyzer-options = pkgs.callPackage ./rust-analyzer { }; lspconfig-servers = pkgs.callPackage ./nvim-lspconfig { }; + version-info = pkgs.callPackage ./version-info { }; }) diff --git a/update-scripts/version-info/default.nix b/update-scripts/version-info/default.nix new file mode 100644 index 00000000..a59867f0 --- /dev/null +++ b/update-scripts/version-info/default.nix @@ -0,0 +1,36 @@ +{ + lib, + writers, + runCommand, +}: +let + inherit (builtins) + all + match + attrNames + ; + inherit (lib) + importJSON + ; + + lockFile = importJSON ../../flake.lock; + nixpkgsLock = + # Assert there is only one nixpkgs node + assert all (node: match "nixpkgs_[0-9]+" node == null) (attrNames lockFile.nodes); + lockFile.nodes.nixpkgs.original; + + info = { + inherit (lib.trivial) release; + nixpkgs_rev = lib.trivial.revisionWithDefault (throw "nixpkgs revision not available"); + unstable = lib.strings.hasSuffix "-unstable" nixpkgsLock.ref; + }; +in +runCommand "version-info.toml" { } '' + ( + echo "# DO NOT MODIFY!" + echo "# This file was generated by ${ + lib.strings.removePrefix (toString ../.. + "/") (toString ./default.nix) + }" + cat ${writers.writeTOML "version-info.toml" info} + ) > $out +''