2018-10-19 21:26:36 +00:00
|
|
|
{ lib, buildGoPackage, fetchFromGitHub, go-bindata, pkgconfig, makeWrapper
|
2018-11-16 22:18:51 +00:00
|
|
|
, glib, gtk3, libappindicator-gtk3, gpgme, openshift, ostree, libselinux, btrfs-progs
|
2018-10-19 21:26:36 +00:00
|
|
|
, lvm2, docker-machine-kvm
|
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
2019-02-19 20:45:23 +00:00
|
|
|
version = "1.31.0";
|
2018-10-19 21:26:36 +00:00
|
|
|
|
|
|
|
# Update these on version bumps according to Makefile
|
2019-01-28 14:57:58 +00:00
|
|
|
centOsIsoVersion = "v1.14.0";
|
2018-10-19 21:26:36 +00:00
|
|
|
openshiftVersion = "v3.11.0";
|
|
|
|
|
|
|
|
in buildGoPackage rec {
|
|
|
|
name = "minishift-${version}";
|
|
|
|
inherit version;
|
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "minishift";
|
|
|
|
repo = "minishift";
|
|
|
|
rev = "v${version}";
|
2019-02-19 20:45:23 +00:00
|
|
|
sha256 = "0v5hngfz393yi3x4c328g5bjazw02jr59ljqh6ws0j6wzxzm8jxf";
|
2018-10-19 21:26:36 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
nativeBuildInputs = [ pkgconfig go-bindata makeWrapper ];
|
|
|
|
buildInputs = [ glib gtk3 libappindicator-gtk3 gpgme ostree libselinux btrfs-progs lvm2 ];
|
|
|
|
|
|
|
|
goPackagePath = "github.com/minishift/minishift";
|
|
|
|
subPackages = [ "cmd/minishift" ];
|
|
|
|
|
|
|
|
postPatch = ''
|
2018-11-16 22:18:51 +00:00
|
|
|
# minishift downloads openshift if not found therefore set the cache to /nix/store/...
|
|
|
|
substituteInPlace pkg/minishift/cache/oc_caching.go \
|
|
|
|
--replace 'filepath.Join(oc.MinishiftCacheDir, OC_CACHE_DIR, oc.OpenShiftVersion, runtime.GOOS)' '"${openshift}/bin"' \
|
|
|
|
--replace '"runtime"' ""
|
2018-10-19 21:26:36 +00:00
|
|
|
'';
|
|
|
|
|
|
|
|
buildFlagsArray = ''
|
|
|
|
-ldflags=
|
|
|
|
-X ${goPackagePath}/pkg/version.minishiftVersion=${version}
|
|
|
|
-X ${goPackagePath}/pkg/version.centOsIsoVersion=${centOsIsoVersion}
|
|
|
|
-X ${goPackagePath}/pkg/version.openshiftVersion=${openshiftVersion}
|
|
|
|
'';
|
|
|
|
|
|
|
|
preBuild = ''
|
|
|
|
(cd go/src/github.com/minishift/minishift
|
|
|
|
mkdir -p out/bindata
|
|
|
|
go-bindata -prefix addons -o out/bindata/addon_assets.go -pkg bindata addons/...)
|
|
|
|
'';
|
|
|
|
|
|
|
|
postInstall = ''
|
|
|
|
wrapProgram "$bin/bin/minishift" \
|
2018-11-16 22:18:51 +00:00
|
|
|
--prefix PATH ':' '${lib.makeBinPath [ docker-machine-kvm openshift ]}'
|
2018-10-19 21:26:36 +00:00
|
|
|
'';
|
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
description = "Run OpenShift locally";
|
|
|
|
longDescription = ''
|
|
|
|
Minishift is a tool that helps you run OpenShift locally by running
|
|
|
|
a single-node OpenShift cluster inside a VM. You can try out OpenShift
|
|
|
|
or develop with it, day-to-day, on your local host.
|
|
|
|
'';
|
|
|
|
homepage = https://github.com/minishift/minishift;
|
2018-12-24 10:08:52 +00:00
|
|
|
maintainers = with maintainers; [ fpletz vdemeester ];
|
2018-10-19 21:26:36 +00:00
|
|
|
platforms = platforms.linux;
|
|
|
|
license = licenses.asl20;
|
|
|
|
};
|
|
|
|
}
|