blob: f28754005ecbad41aa5779fb2bacd2d0402110c9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
{ lib, buildGoModule, fetchFromGitHub, go-bindata }:
buildGoModule rec {
pname = "waypoint";
version = "0.2.3";
src = fetchFromGitHub {
owner = "hashicorp";
repo = pname;
rev = "v${version}";
sha256 = "sha256-FTBBDKFUoyC+Xdm3+2QWXK57fLwitYrFP89OvAyHHVY=";
};
deleteVendor = true;
vendorSha256 = "sha256-ihelAumTRgLALevJdVq3V3SISitiRPCQZUh2h5/eczA=";
nativeBuildInputs = [ go-bindata ];
# GIT_{COMMIT,DIRTY} filled in blank to prevent trying to run git and ending up blank anyway
buildPhase = ''
runHook preBuild
make bin GIT_DESCRIBE="v${version}" GIT_COMMIT="" GIT_DIRTY=""
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -D waypoint $out/bin/waypoint
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
# `version` tries to write to ~/.config/waypoint
export HOME="$TMPDIR"
$out/bin/waypoint --help
$out/bin/waypoint version # | grep "Waypoint v${version}"
runHook postInstallCheck
'';
# Binary is static
dontPatchELF = true;
dontPatchShebangs = true;
meta = with lib; {
homepage = "https://waypointproject.io";
changelog = "https://github.com/hashicorp/waypoint/blob/v${version}/CHANGELOG.md";
description = "A tool to build, deploy, and release any application on any platform";
longDescription = ''
Waypoint allows developers to define their application build, deploy, and
release lifecycle as code, reducing the time to deliver deployments
through a consistent and repeatable workflow.
'';
license = licenses.mpl20;
maintainers = with maintainers; [ winpat jk ];
platforms = platforms.linux;
};
}
|