Add Slackme module

pull/85/head
Kyle Carberry 2 years ago
parent 216d32f3aa
commit d02ca12d42

@ -0,0 +1,40 @@
terraform {
required_version = ">= 1.0"
required_providers {
coder = {
source = "coder/coder"
version = ">= 0.12"
}
}
}
variable "agent_id" {
type = string
description = "The ID of a Coder agent."
}
variable "external_provider_id" {
type = string
description = "The ID of an external provider."
}
data "coder_external_auth" "slack" {
id = var.external_provider_id
}
resource "coder_script" "install_slackme" {
agent_id = var.agent_id
display_name = "install_slackme"
script = <<EOF
#!/usr/bin/env bash
CODER_DIR=$(dirname $(which coder))
cat > $CODER_DIR/slackme <<EOF
${templatefile("${path.module}/slackme.sh", {
PROVIDER_ID: data.coder_external_auth.slack.id
})}
\EOF
chmod +x $CODER_DIR/slackme
EOF
}

@ -0,0 +1,28 @@
#!/usr/bin/env node
PROVIDER_ID=${PROVIDER_ID}
BOT_TOKEN=$(coder external-auth access-token $PROVIDER_ID)
if [ $? -ne 0 ]; then
echo "Authenticate to run commands in the background:"
# The output contains the URL if failed.
echo $BOT_TOKEN
exit 1
fi
USER_ID=$(coder external-auth access-token $PROVIDER_ID --extra "authed_user.id")
if [ $? -ne 0 ]; then
echo "Failed to get authenticated user ID:"
echo $USER_ID
exit 1
fi
echo "We'll notify you when done!"
# Run all arguments as a command
$@
curl --silent -o /dev/null --header "Authorization: Bearer $BOT_TOKEN" \
"https://slack.com/api/chat.postMessage?channel=$USER_ID&text=Your%20command%20finished!&pretty=1"
Loading…
Cancel
Save