1{ lib, bundlerEnv, ruby, buildGoModule, fetchFromGitHub }:
2let
3 # needed for manpage generation
4 gems = bundlerEnv {
5 name = "ejson-gems";
6 gemdir = ./.;
7 inherit ruby;
8 };
9in
10buildGoModule rec {
11 pname = "ejson";
12 version = "1.3.3";
13
14 src = fetchFromGitHub {
15 owner = "Shopify";
16 repo = "ejson";
17 rev = "v${version}";
18 sha256 = "sha256-M2Gk+/l1tNlIAe1/fR1WLEOey+tjCUmMAujc76gmeZA=";
19 };
20
21 vendorHash = "sha256-9+x7HrbXRoS/7ZADWwhsbynQLr3SyCbcsp9QnSubov0=";
22
23 nativeBuildInputs = [ gems ];
24
25 ldflags = [ "-s" "-w" ];
26
27 # set HOME, otherwise bundler will insert stuff in the manpages
28 postBuild = ''
29 HOME=$PWD make man SHELL=$SHELL
30 '';
31
32 postInstall = ''
33 mkdir -p $out/share
34 cp -r build/man $out/share
35 '';
36
37 meta = with lib; {
38 description = "A small library to manage encrypted secrets using asymmetric encryption";
39 mainProgram = "ejson";
40 license = licenses.mit;
41 homepage = "https://github.com/Shopify/ejson";
42 maintainers = [ maintainers.manveru ];
43 };
44}