diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 238d48462bd..88bf7433a79 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2228,6 +2228,15 @@ email = "tkatchev@gmail.com"; name = "Ivan Tkatchev"; }; + ivanbrennan = { + email = "ivan.brennan@gmail.com"; + github = "ivanbrennan"; + name = "Ivan Brennan"; + keys = [{ + longkeyid = "rsa4096/0x79C3C47DC652EA54"; + fingerprint = "7311 2700 AB4F 4CDF C68C F6A5 79C3 C47D C652 EA54"; + }]; + }; ivegotasthma = { email = "ivegotasthma@protonmail.com"; github = "ivegotasthma"; diff --git a/pkgs/development/tools/continuous-integration/fly/default.nix b/pkgs/development/tools/continuous-integration/fly/default.nix new file mode 100644 index 00000000000..47af70b3702 --- /dev/null +++ b/pkgs/development/tools/continuous-integration/fly/default.nix @@ -0,0 +1,37 @@ +{ buildGoModule, fetchFromGitHub, lib, writeText }: + +buildGoModule rec { + pname = "fly"; + version = "5.3.0"; + + src = fetchFromGitHub { + owner = "concourse"; + repo = "concourse"; + rev = "v${version}"; + sha256 = "06ns98k47nafhkkj7gkmxp7msn4ssypyss6ll0fm6380vq2cavnj"; + }; + + modSha256 = "11rnlmn5hp9nsgkmd716dsjmkr273035j9gzfhjxjsfpiax60i0a"; + + subPackages = [ "fly" ]; + + buildFlagsArray = '' + -ldflags= + -X github.com/concourse/concourse.Version=${version} + ''; + + # The fly.bash file included with this derivation can be replaced by a + # call to `fly completion bash` once the `completion` subcommand has + # made it into a release. Similarly, `fly completion zsh` will provide + # zsh completions. https://github.com/concourse/concourse/pull/4012 + postInstall = '' + install -D -m 444 ${./fly.bash} $out/share/bash-completion/completions/fly + ''; + + meta = with lib; { + description = "A command line interface to Concourse CI"; + homepage = https://concourse-ci.org; + license = licenses.asl20; + maintainers = with maintainers; [ ivanbrennan ]; + }; +} diff --git a/pkgs/development/tools/continuous-integration/fly/fly.bash b/pkgs/development/tools/continuous-integration/fly/fly.bash new file mode 100644 index 00000000000..a9acc5f70a4 --- /dev/null +++ b/pkgs/development/tools/continuous-integration/fly/fly.bash @@ -0,0 +1,10 @@ +# credits: +# https://godoc.org/github.com/jessevdk/go-flags#hdr-Completion +# https://github.com/concourse/concourse/issues/1309#issuecomment-452893900 +_fly_compl() { + args=("${COMP_WORDS[@]:1:$COMP_CWORD}") + local IFS=$'\n' + COMPREPLY=($(GO_FLAGS_COMPLETION=1 ${COMP_WORDS[0]} "${args[@]}")) + return 0 +} +complete -F _fly_compl fly diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7b56dbe6c15..1acc477c066 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9252,6 +9252,8 @@ in inherit (darwin) cf-private; }; + fly = callPackage ../development/tools/continuous-integration/fly { }; + foreman = callPackage ../tools/system/foreman { }; goreman = callPackage ../tools/system/goreman { };