diff options
author | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2016-11-27 17:45:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-27 17:45:03 +0100 |
commit | 5dcf6ecbeb4ffbf189d50453d03f50968fcc4cb6 (patch) | |
tree | 0e7beb6f6d1c8cd91416fea7b747e5c7d6eb68c7 | |
parent | bcc9a6ac75d87738bae8dac55d074e1c5b9f9201 (diff) | |
parent | 46e6e2ba170e1c462fd752080c3e7c4bd93ba324 (diff) | |
download | nixlib-5dcf6ecbeb4ffbf189d50453d03f50968fcc4cb6.tar nixlib-5dcf6ecbeb4ffbf189d50453d03f50968fcc4cb6.tar.gz nixlib-5dcf6ecbeb4ffbf189d50453d03f50968fcc4cb6.tar.bz2 nixlib-5dcf6ecbeb4ffbf189d50453d03f50968fcc4cb6.tar.lz nixlib-5dcf6ecbeb4ffbf189d50453d03f50968fcc4cb6.tar.xz nixlib-5dcf6ecbeb4ffbf189d50453d03f50968fcc4cb6.tar.zst nixlib-5dcf6ecbeb4ffbf189d50453d03f50968fcc4cb6.zip |
Merge pull request #18532 from peterhoeg/hero
heroku: 3.43.2 -> 3.43.12 and wrap the downloaded binary
-rw-r--r-- | pkgs/development/tools/heroku/default.nix | 84 |
1 files changed, 65 insertions, 19 deletions
diff --git a/pkgs/development/tools/heroku/default.nix b/pkgs/development/tools/heroku/default.nix index 0993ee7b5443..e78c7a7ff9a5 100644 --- a/pkgs/development/tools/heroku/default.nix +++ b/pkgs/development/tools/heroku/default.nix @@ -1,28 +1,74 @@ -{ stdenv, fetchurl, postgresql, ruby, makeWrapper, nodejs-6_x }: +{ stdenv, fetchurl, bash, buildFHSUserEnv, makeWrapper, writeTextFile +, nodejs-6_x, postgresql, ruby }: with stdenv.lib; -stdenv.mkDerivation rec { - version = "3.43.2"; - name = "heroku-${version}"; - meta = { - homepage = "https://toolbelt.heroku.com"; - description = "Everything you need to get started using Heroku"; - maintainers = with maintainers; [ aflatter mirdhyn ]; - license = licenses.mit; - platforms = with platforms; unix; +let + version = "3.43.12"; + bin_ver = "5.4.7-8dc2c80"; + + arch = { + "x86_64-linux" = "linux-amd64"; + }."${stdenv.system}" or (throw "system ${stdenv.system} not supported"); + + sha256 = { + "x86_64-linux" = "0iqjxkdw53dvy54ahmr9yijlxrp5nbikh9z7iss93z753cgxdl06"; + }."${stdenv.system}" or (throw "system ${stdenv.system} not supported"); + + fhsEnv = buildFHSUserEnv { + name = "heroku-fhs-env"; }; - src = fetchurl { - url = "https://s3.amazonaws.com/assets.heroku.com/heroku-client/heroku-client-${version}.tgz"; - sha256 = "1sapbxg7pzi89c95k0vsp8k5bysggkjf58jwck2xs0y4ly36wbnc"; + heroku = stdenv.mkDerivation rec { + inherit version; + name = "heroku"; + + meta = { + homepage = "https://toolbelt.heroku.com"; + description = "Everything you need to get started using Heroku"; + maintainers = with maintainers; [ aflatter mirdhyn ]; + license = licenses.mit; + platforms = with platforms; unix; + }; + + src = fetchurl { + url = "https://s3.amazonaws.com/assets.heroku.com/heroku-client/heroku-client-${version}.tgz"; + sha256 = "1z7z8sl2hkrc8rdvx3h00fbcrxs827xlfp6fji0ap97a6jc0v9x4"; + }; + + bin = fetchurl { + url = "https://cli-assets.heroku.com/branches/stable/${bin_ver}/heroku-v${bin_ver}-${arch}.tar.gz"; + inherit sha256; + }; + + installPhase = '' + cli=$out/share/heroku/cli + mkdir -p $cli + + tar xzf $src -C $out --strip-components=1 + tar xzf $bin -C $cli --strip-components=1 + + 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 + + # When https://github.com/NixOS/patchelf/issues/66 is fixed, reinstate this and dump the fhsuserenv + #patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + # $cli/bin/heroku + ''; + + buildInputs = [ fhsEnv ruby postgresql makeWrapper ]; + + doUnpack = false; }; - installPhase = '' - mkdir -p $out - cp -R * $out/ - wrapProgram $out/bin/heroku --set HEROKU_NODE_PATH ${nodejs-6_x}/bin/node +in writeTextFile { + name = "heroku-${version}"; + destination = "/bin/heroku"; + executable = true; + text = '' + #!${bash}/bin/bash -e + ${fhsEnv}/bin/heroku-fhs-env ${heroku}/bin/heroku ''; - - buildInputs = [ ruby postgresql makeWrapper ]; } |