diff --git a/pkgs/tools/networking/slack-cli/default.nix b/pkgs/tools/networking/slack-cli/default.nix index dc8b25d868c8..18f192d3535f 100644 --- a/pkgs/tools/networking/slack-cli/default.nix +++ b/pkgs/tools/networking/slack-cli/default.nix @@ -7,41 +7,42 @@ { stdenv, lib, writeShellScriptBin, fetchFromGitHub, curl, jq }: -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. +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" + + cat <<-WRAPPER > "$out/bin/slack" + #!${stdenv.shell} + [ "\$1" = "init" -a -z "\$SLACK_CLI_TOKEN" ] && cat <<-'MESSAGE' >&2 + 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. MESSAGE - export PATH=${lib.makeBinPath [ curl jq ]}:"$PATH" - exec "$(dirname "$0")/.slack-wrapped" "$@" + export PATH=${lib.makeBinPath [ curl jq ]}:"\$PATH" + exec "$out/bin/.slack-wrapped" "\$@" + WRAPPER + + chmod +x "$out/bin/slack" ''; -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; - }; - } + meta = { + license = lib.licenses.mit; + maintainers = [ lib.maintainers.qyliss ]; + platforms = lib.platforms.unix; + }; +}