tvl-depot/tools/magrathea/default.nix
Evgeny Zemtsov e3fe6826f8 fix(tools/magrathea): isolate from environment packages
This makes magrathea use the repostory version of nix and git. This is
done in the pursuit of enforcing guaranteed unified experience of
magrathea tool across all users of a `tvl-kit`-based
repository. Especially among ubuntu users with uncontrolled set of
packages and versions installed on their system.

Not having this was giving build problems for `mg build` as one of the
users has 2.17 version of nix that had inconsistent hash computation
with 2.3.

Change-Id: I3182faf4c545ac61f6cc1cc862dc23d51c1cd397
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9892
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2023-11-03 13:54:36 +00:00

39 lines
676 B
Nix

# magrathea helps you build planets
#
# it is a tool for working with monorepos in the style of tvl's depot
{ pkgs, ... }:
let
inherit (pkgs)
stdenv
chicken
chickenPackages
makeWrapper
git
nix
lib
;
in
stdenv.mkDerivation {
name = "magrathea";
src = ./.;
dontInstall = true;
nativeBuildInputs = [ chicken makeWrapper ];
buildInputs = with chickenPackages.chickenEggs; [
matchable
srfi-13
];
propagatedBuildInputs = [ git ];
buildPhase = ''
mkdir -p $out/bin
csc -o $out/bin/mg -host -static ${./mg.scm}
'';
fixupPhase = ''
wrapProgram $out/bin/mg --prefix PATH ${lib.makeBinPath [ nix ]}
'';
}