drone-ntfy/cmd/drone-ntfy/main.go

51 lines
1.2 KiB
Go

package main
import (
"fmt"
"log"
"os"
"github.com/caarlos0/env/v7"
)
type Config struct {
BaseUrl string `env:"PLUGIN_BASE_URL" envDefault:"https://ntfy.sh"`
Topic string `env:"PLUGIN_TOPIC,required"`
Title string `env:"PLUGIN_TITLE" envDefault:"Drone notification"`
Priority string `env:"PLUGIN_PRIORITY" envDefault:"default"`
Tags []string `env:"PLUGIN_TAGS" envSeparator:","`
}
type DroneConfig struct {
BuildNumber string `envPrefix:"DRONE_"`
StageName string `envPrefix:"DRONE_"`
StageStatus string `envPrefix:"DRONE_"`
}
type CiConfig struct {
RepoName string `envPrefix:"CI_"`
CommitMessage string `envPrefix:"CI_"`
}
const DEFAULT_PRIORITY = "default"
const BASE_URL = "https://ntfy.sh"
const TOPIC = ""
const TITLE = ""
const PRIORITY = ""
const TAGS = ""
const MESSAGE = "Build $DRONE_BUILD_NUMBER of $CI_REPO_NAME at stage $DRONE_STAGE_NAME $DRONE_STAGE_STATUS.\n\nCommit: $CI_COMMIT_MESSAGE"
func main() {
fmt.Printf("Topic: %s\n", os.Environ())
cfg := Config{}
err := env.Parse(&cfg)
if err != nil {
log.Fatalf("unable to parse environment variables: %e", err)
}
fmt.Printf("Config: %v\n", cfg)
}