diff options
Diffstat (limited to 'pkgs/tools/networking/slack-cli/default.nix')
-rw-r--r-- | pkgs/tools/networking/slack-cli/default.nix | 56 |
1 files changed, 35 insertions, 21 deletions
diff --git a/pkgs/tools/networking/slack-cli/default.nix b/pkgs/tools/networking/slack-cli/default.nix index 24d82782466..dc8b25d868c 100644 --- a/pkgs/tools/networking/slack-cli/default.nix +++ b/pkgs/tools/networking/slack-cli/default.nix @@ -5,29 +5,43 @@ # for token storage, except that it would make the Nix package inconsistent with # upstream and other distributions. -{ stdenv, fetchFromGitHub }: +{ stdenv, lib, writeShellScriptBin, fetchFromGitHub, curl, jq }: -stdenv.mkDerivation rec { - name = "slack-cli-${version}"; - version = "0.18.0"; +let + wrapper = writeShellScriptBin "slack" '' + [ "$1" = "init" -a -z "$SLACK_CLI_TOKEN" ] && cat >&2 <<-'MESSAGE' + WARNING: slack-cli must be configured using the SLACK_CLI_TOKEN environment + variable. Using `slack init` will not work because it tries to write to the + Nix store. - src = fetchFromGitHub { - owner = "rockymadden"; - repo = "slack-cli"; - rev = "v${version}"; - sha256 = "022yr3cpfg0v7cxi62zzk08vp0l3w851qpfh6amyfgjiynnfyddl"; - }; + MESSAGE - dontBuild = true; - - installPhase = '' - mkdir -p "$out/bin" - cp src/slack "$out/bin" + export PATH=${lib.makeBinPath [ curl jq ]}:"$PATH" + exec "$(dirname "$0")/.slack-wrapped" "$@" ''; - meta = { - license = stdenv.lib.licenses.mit; - maintainers = [ stdenv.lib.maintainers.qyliss ]; - platforms = stdenv.lib.platforms.unix; - }; -} +in stdenv.mkDerivation rec { + name = "slack-cli-${version}"; + version = "0.18.0"; + + src = fetchFromGitHub { + owner = "rockymadden"; + repo = "slack-cli"; + rev = "v${version}"; + sha256 = "022yr3cpfg0v7cxi62zzk08vp0l3w851qpfh6amyfgjiynnfyddl"; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p "$out/bin" + cp src/slack "$out/bin/.slack-wrapped" + ln -s ${wrapper}/bin/slack "$out/bin/slack" + ''; + + meta = { + license = lib.licenses.mit; + maintainers = [ lib.maintainers.qyliss ]; + platforms = lib.platforms.unix; + }; + } |