{ lib , buildGoApplication , fetchFromGitLab , installShellFiles , docker-machine-driver-hetzner , makeWrapper , openssh , rsync , }: ( buildGoApplication rec { pname = "docker-machine-gitlab"; version = "0.16.2-gitlab.32"; goPackagePath = "github.com/docker/machine"; modules = ./gomod2nix.toml; src = fetchFromGitLab { rev = "v${version}"; group = "gitlab-org"; owner = "ci-cd"; repo = "docker-machine"; sha256 = "sha256-jipKo3LRTDUVKMkBK2qH/JIUcj3vJh7SdcQ8FMTr2Ok="; }; nativeBuildInputs = [ docker-machine-driver-hetzner installShellFiles makeWrapper openssh rsync ]; postInstall = '' pushd contrib/completion installShellCompletion --bash bash/* installShellCompletion --zsh zsh/* popd wrapProgram $out/bin/docker-machine \ --prefix PATH : ${lib.makeBinPath [ docker-machine-driver-hetzner openssh rsync ]} ''; } ).overrideAttrs (attrs: { checkPhase = '' export USER="unknown" ln -s $GOPATH/bin bin # Disable failing test cat > cmd/docker-machine/machine_test.go << EOF package main import ( "os" "testing" "github.com/docker/machine/commands/mcndirs" ) func TestStorePathSetCorrectly(t *testing.T) { mcndirs.BaseDir = "" os.Args = []string{"docker-machine", "--storage-path", "/tmp/foo"} main() /* if mcndirs.BaseDir != "/tmp/foo" { t.Fatal("Expected MACHINE_STORAGE_PATH environment variable to be /tmp/foo but was ", os.Getenv("MACHINE_STORAGE_PATH")) } */ } EOF sed -i 's#exec.Command("/usr/bin/scp"#exec.Command("${openssh}/bin/scp"#' commands/scp_test.go sed -i 's#exec.Command("/usr/bin/rsync"#exec.Command("${rsync}/bin/rsync"#' commands/scp_test.go '' + attrs.checkPhase; })