From ddd9964db789f9b2b37f569546d101aa7e5549a1 Mon Sep 17 00:00:00 2001 From: Pete Davison Date: Wed, 24 Apr 2024 21:40:52 +0100 Subject: [PATCH] feat: warn about move from any variables to map variables (#1618) --- cmd/task/task.go | 25 +++++++++++++------------ internal/experiments/experiments.go | 2 ++ internal/flags/flags.go | 3 +++ internal/logger/logger.go | 4 ++++ 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/cmd/task/task.go b/cmd/task/task.go index be63b457..33600b4c 100644 --- a/cmd/task/task.go +++ b/cmd/task/task.go @@ -3,7 +3,6 @@ package main import ( "context" "fmt" - "log" "os" "strings" @@ -44,8 +43,12 @@ func main() { } func run() error { - log.SetFlags(0) - log.SetOutput(os.Stderr) + logger := &logger.Logger{ + Stdout: os.Stdout, + Stderr: os.Stderr, + Verbose: flags.Verbose, + Color: flags.Color, + } if err := flags.Validate(); err != nil { return err @@ -65,22 +68,16 @@ func run() error { } if flags.Experiments { - l := &logger.Logger{ - Stdout: os.Stdout, - Stderr: os.Stderr, - Verbose: flags.Verbose, - Color: flags.Color, - } - return experiments.List(l) + return experiments.List(logger) } if flags.Init { wd, err := os.Getwd() if err != nil { - log.Fatal(err) + return err } if err := task.InitTaskfile(os.Stdout, wd); err != nil { - log.Fatal(err) + return err } return nil } @@ -138,6 +135,10 @@ func run() error { return err } + if experiments.AnyVariables.Enabled { + logger.Warnf("The 'Any Variables' experiment flag is no longer required to use non-map variable types. If you wish to use map variables, please use 'TASK_X_MAP_VARIABLES' instead. See https://github.com/go-task/task/issues/1585\n") + } + // If the download flag is specified, we should stop execution as soon as // taskfile is downloaded if flags.Download { diff --git a/internal/experiments/experiments.go b/internal/experiments/experiments.go index bcd37236..160f4219 100644 --- a/internal/experiments/experiments.go +++ b/internal/experiments/experiments.go @@ -27,6 +27,7 @@ type Experiment struct { var ( GentleForce Experiment RemoteTaskfiles Experiment + AnyVariables Experiment MapVariables Experiment ) @@ -34,6 +35,7 @@ func init() { readDotEnv() GentleForce = New("GENTLE_FORCE") RemoteTaskfiles = New("REMOTE_TASKFILES") + AnyVariables = New("ANY_VARIABLES", "1", "2") MapVariables = New("MAP_VARIABLES", "1", "2") } diff --git a/internal/flags/flags.go b/internal/flags/flags.go index a5c775a8..6c67443c 100644 --- a/internal/flags/flags.go +++ b/internal/flags/flags.go @@ -3,6 +3,7 @@ package flags import ( "errors" "log" + "os" "time" "github.com/spf13/pflag" @@ -68,6 +69,8 @@ var ( ) func init() { + log.SetFlags(0) + log.SetOutput(os.Stderr) pflag.Usage = func() { log.Print(usage) pflag.PrintDefaults() diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 91e23110..8d72539b 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -138,6 +138,10 @@ func (l *Logger) VerboseErrf(color Color, s string, args ...any) { } } +func (l *Logger) Warnf(message string, args ...any) { + l.Errf(Yellow, message, args...) +} + func (l *Logger) Prompt(color Color, prompt string, defaultValue string, continueValues ...string) error { if l.AssumeYes { l.Outf(color, "%s [assuming yes]\n", prompt)