1{
2 buildGoModule,
3 fetchFromGitHub,
4 lib,
5 makeWrapper,
6 openssh,
7}:
8
9buildGoModule rec {
10 pname = "morph";
11 version = "1.8.0";
12
13 src = fetchFromGitHub {
14 owner = "dbcdk";
15 repo = "morph";
16 rev = "v${version}";
17 hash = "sha256-IqWtVklzSq334cGgLx/13l329g391oDW50MZWyO6l08=";
18 };
19
20 vendorHash = "sha256-zQlMtbXgrH83zrcIoOuFhb2tYCeQ1pz4UQUvRIsLMCE=";
21
22 nativeBuildInputs = [ makeWrapper ];
23
24 ldflags = [
25 "-X main.version=${version}"
26 "-X main.assetRoot=${placeholder "lib"}"
27 ];
28
29 postInstall = ''
30 mkdir -p $lib
31 cp -v ./data/*.nix $lib
32 wrapProgram $out/bin/morph --prefix PATH : ${lib.makeBinPath [ openssh ]};
33 '';
34
35 outputs = [
36 "out"
37 "lib"
38 ];
39
40 meta = with lib; {
41 description = "NixOS host manager written in Golang";
42 license = licenses.mit;
43 homepage = "https://github.com/dbcdk/morph";
44 maintainers = with maintainers; [
45 adamt
46 johanot
47 ];
48 mainProgram = "morph";
49 };
50}