summary refs log tree commit diff
path: root/pkgs/development/tools/heroku/default.nix
blob: 9c5cbb1aa285956fa5ee7b5be698bdd55cd5f57f (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
61
62
63
64
65
66
67
68
69
70
{ stdenv, lib, fetchurl, makeWrapper, buildGoPackage, fetchFromGitHub
, nodejs-6_x, postgresql, ruby }:

with stdenv.lib;

let
  cli = buildGoPackage rec {
    name = "cli-${version}";
    version = "5.6.32";

    goPackagePath = "github.com/heroku/cli";

    src = fetchFromGitHub {
      owner  = "heroku";
      repo   = "cli";
      rev    = "v${version}";
      sha256 = "062aa79mv2njjb0ix7isbz6646wxmsldv27bsz5v2pbv597km0vz";
    };

    buildFlagsArray = ''
      -ldflags=
        -X=main.Version=${version}
        -X=main.Channel=stable
        -X=main.Autoupdate=no
    '';

    preCheck = ''
      export HOME=/tmp
    '';

    doCheck = true;
  };

in stdenv.mkDerivation rec {
  name = "heroku-${version}";
  version = "3.43.16";

  meta = {
    homepage = https://toolbelt.heroku.com;
    description = "Everything you need to get started using Heroku";
    maintainers = with maintainers; [ aflatter mirdhyn peterhoeg ];
    license = licenses.mit;
    platforms = with platforms; unix;
    broken = true; # Outdated function, not supported upstream. https://github.com/NixOS/nixpkgs/issues/27447
  };

  binPath = lib.makeBinPath [ postgresql ruby ];

  buildInputs = [ makeWrapper ];

  doUnpack = false;

  src = fetchurl {
    url = "https://s3.amazonaws.com/assets.heroku.com/heroku-client/heroku-client-${version}.tgz";
    sha256 = "08pai3cjaj7wshhyjcmkvyr1qxv5ab980whcm406798ng8f91hn7";
  };

  installPhase = ''
    mkdir -p $out

    tar xzf $src -C $out --strip-components=1
    install -Dm755 ${cli}/bin/cli $out/share/heroku/cli/bin/heroku

    wrapProgram $out/bin/heroku \
      --set HEROKU_NODE_PATH ${nodejs-6_x}/bin/node \
      --set XDG_DATA_HOME    $out/share \
      --set XDG_DATA_DIRS    $out/share \
      --prefix PATH : ${binPath}
  '';
}