package env import ( // other "github.com/vrischmann/envconfig" "fmt" ) var Data *environmentData type environmentData struct { CI bool `envconfig:"optional"` IsDrone bool `envconfig:"DRONE,optional"` Debug bool `envconfig:"optional"` Drone struct { Branch string `envconfig:"optional"` Build struct { Action string `envconfig:"optional"` Created float64 `envconfig:"optional"` Event string `envconfig:"optional"` Finished float64 `envconfig:"optional"` Link string `envconfig:"optional"` Number int `envconfig:"optional"` Parent string `envconfig:"optional"` Started float64 `envconfig:"optional"` Status string `envconfig:"optional"` } CommitHash string `envconfig:"DRONE_COMMIT,optional"` Commit struct { After string `envconfig:"optional"` AuthorName string `envconfig:"DRONE_COMMIT_AUTHOR,optional"` Author struct { Avatar string `envconfig:"optional"` Email string `envconfig:"optional"` Name string `envconfig:"optional"` } Before string `envconfig:"optional"` Branch string `envconfig:"optional"` Link string `envconfig:"optional"` Message string `envconfig:"optional"` Ref string `envconfig:"optional"` Sha string `envconfig:"optional"` } Deploy struct { To string `envconfig:"optional"` } Failed struct { Stages string `envconfig:"optional"` Steps string `envconfig:"optional"` } Git struct { HTTP struct { URL string `envconfig:"optional"` } SSH struct { URL string `envconfig:"optional"` } } Pull struct { Request string `envconfig:"optional"` } Remote struct { URL string `envconfig:"optional"` } RepoName string `envconfig:"DRONE_REPO_NAME,optional"` Repo struct { Branch string `envconfig:"optional"` Link string `envconfig:"optional"` Name string `envconfig:"optional"` Namespace string `envconfig:"optional"` Owner string `envconfig:"optional"` Private bool `envconfig:"optional"` SCM string `envconfig:"optional"` Visibility string `envconfig:"optional"` } SemverData string `envconfig:"DRONE_SEMVER,optional"` Semver struct { Build string `envconfig:"optional"` Error string `envconfig:"optional"` Major int `envconfig:"optional"` Minor int `envconfig:"optional"` Patch int `envconfig:"optional"` Prerelease string `envconfig:"optional"` Short string `envconfig:"optional"` } Source struct { Branch string `envconfig:"optional"` } Stage struct { Arch string `envconfig:"optional"` Depends struct { On string `envconfig:"optional"` } Finished int `envconfig:"optional"` Kind string `envconfig:"optional"` Machine string `envconfig:"optional"` Name string `envconfig:"optional"` Number int `envconfig:"optional"` OS string `envconfig:"optional"` Started int `envconfig:"optional"` Status string `envconfig:"optional"` Type string `envconfig:"optional"` Variant string `envconfig:"optional"` } Step struct { Name string `envconfig:"optional"` Number int `envconfig:"optional"` } System struct { Host string `envconfig:"optional"` Hostname string `envconfig:"optional"` Proto string `envconfig:"optional"` Version string `envconfig:"optional"` } Tag string `envconfig:"optional"` Target struct { Branch string `envconfig:"optional"` } } Plugin struct { Avatar struct { URL string `envconfig:"optional"` } Color string `envconfig:"optional"` Message string `envconfig:"optional"` Webhook struct { ID string `envconfig:"optional"` Token string `envconfig:"optional"` } TTS bool `envconfig:"optional"` Username string `envconfig:"optional"` } } func ParseEnv() { Data = &environmentData{} err := envconfig.Init(Data) if err != nil { fmt.Println(err) } }