Add Slackme module
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…
Reference in New Issue