package main import ( "context" "gitea.dikurium.ch/InnoPeak/drone-gitea-release/plugin" "github.com/kelseyhightower/envconfig" log "github.com/sirupsen/logrus" flag "github.com/spf13/pflag" ) var args plugin.Args func init() { if err := envconfig.Process("", &args); err != nil { log.Fatalln(err) } var ( titleFormat *string = flag.String("title-format", "", "Format to use for the release title") tagFile *string = flag.String("tag-file", "", "File to check for tag to release") tagRegex *string = flag.String("tag-regex", "", "Regex pattern to look for tag in tag-file") notes *string = flag.String("notes", "", "Notes to use in release") notesFile *string = flag.String("notes-file", "", "File to use for release notes") logLevel *string = flag.String("log-level", "", "Level for logging") ) flag.Parse() if titleFormat != nil && *titleFormat != "" { args.TitleFormat = *titleFormat } if tagFile != nil && *tagFile != "" { args.TagFile = *tagFile } if tagRegex != nil && *tagRegex != "" { args.TagRegex = *tagRegex } if notes != nil && *notes != "" { args.Notes = *notes } if notesFile != nil && *notesFile != "" { args.NotesFile = *notesFile } if logLevel != nil && *logLevel != "" { args.Level = *logLevel } } func main() { log.SetFormatter(new(formatter)) switch args.Level { case "debug": log.SetFormatter(textFormatter) log.SetLevel(log.DebugLevel) case "trace": log.SetFormatter(textFormatter) log.SetLevel(log.TraceLevel) } if err := plugin.Exec(context.Background(), args); err != nil { log.Fatalln(err) } } // default formatter that writes logs without including timestamp // or level information. type formatter struct{} func (*formatter) Format(entry *log.Entry) ([]byte, error) { return []byte(entry.Message), nil } // text formatter that writes logs with level information var textFormatter = &log.TextFormatter{ DisableTimestamp: true, }