51 lines
1.2 KiB
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)
|
|
}
|