From 231fc40b109c61bcd803fd22d470458d0bb227c7 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Sun, 14 Feb 2021 23:19:23 +0100 Subject: [PATCH 01/13] confetti-framework/confetti#105 resole arguments from configuration --- app/console/kernel.go | 16 +++++++++------ app/console/your_first_command.go | 25 +++++++++++++++++++++++ app/providers/console_service_provider.go | 21 +++++++++++++++++++ config/app.go | 12 +++++++++++ 4 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 app/console/your_first_command.go create mode 100644 app/providers/console_service_provider.go diff --git a/app/console/kernel.go b/app/console/kernel.go index 7a18b9c..290656a 100755 --- a/app/console/kernel.go +++ b/app/console/kernel.go @@ -2,12 +2,16 @@ package console import ( "github.com/confetti-framework/contract/inter" + "github.com/confetti-framework/foundation/console" ) -type Kernel struct { - App inter.App -} - -func NewKernel(app inter.App) Kernel { - return Kernel{app} +func NewKernel(app inter.App) console.Kernel { + return console.Kernel{ + App: app, + Commands: []inter.Command{ + console.AppServe{}, + console.LogClean{}, + YourFirstCommand{}, + }, + } } diff --git a/app/console/your_first_command.go b/app/console/your_first_command.go new file mode 100644 index 0000000..547fd33 --- /dev/null +++ b/app/console/your_first_command.go @@ -0,0 +1,25 @@ +package console + +import ( + "fmt" + "github.com/confetti-framework/contract/inter" + "io" +) + +type YourFirstCommand struct { + YourFirstFlag string `flag:"first"` +} + +func (t YourFirstCommand) Name() string { + return "your:first-command" +} + +func (t YourFirstCommand) Description() string { + return "You can adjust this command to your wishes." +} + +func (t YourFirstCommand) Handle(app inter.App, writer io.Writer) inter.ExitCode { + _, _ = fmt.Fprint(writer, "Value in first flag: "+t.YourFirstFlag) + + return inter.Success +} diff --git a/app/providers/console_service_provider.go b/app/providers/console_service_provider.go new file mode 100644 index 0000000..092fb3d --- /dev/null +++ b/app/providers/console_service_provider.go @@ -0,0 +1,21 @@ +package providers + +import ( + "flag" + "github.com/confetti-framework/contract/inter" + "github.com/confetti-framework/foundation/console/flag_type" + "reflect" +) + +type ConsoleServiceProvider struct{} + +func (c ConsoleServiceProvider) Register(container inter.Container) inter.Container { + // Flag types. + // These types are used to convert the flags from + // the commands to a specific value in a command field. + container.Singleton((*map[interface{}]flag.Value)(nil), map[interface{}]flag.Value{ + reflect.String: new(flag_type.String), + }) + + return container +} diff --git a/config/app.go b/config/app.go index dfbdeb3..d3902b2 100644 --- a/config/app.go +++ b/config/app.go @@ -3,6 +3,7 @@ package config import ( "github.com/confetti-framework/support/env" "golang.org/x/text/language" + "os" "time" ) @@ -13,6 +14,7 @@ var App = struct { LineSeparator, Key, Env string + OsArgs []string Port int Cipher string Debug bool @@ -118,6 +120,16 @@ var App = struct { */ Port: env.Int("APP_PORT"), + /* + |-------------------------------------------------------------------------- + | Application Command-line Arguments + |-------------------------------------------------------------------------- + | + | Args hold the command-line arguments, starting with the program name. + | + */ + OsArgs: os.Args, + /* |-------------------------------------------------------------------------- | Application Debug Mode From 807f8b6d2cafc3da8030c85209a2787de6962953 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Sat, 20 Feb 2021 17:13:05 +0100 Subject: [PATCH 02/13] confetti-framework/confetti#105 implement serve in a seperated commando --- app/console/app_serve.go | 55 ++++++++++++++++++++ app/console/kernel.go | 4 +- app/console/your_first_command.go | 2 +- bootstrap/app.go | 10 +++- bootstrap/http_kernel_handler.go | 22 ++++++++ go.mod | 6 +++ go.sum | 11 ++++ main.go | 83 +++---------------------------- 8 files changed, 113 insertions(+), 80 deletions(-) create mode 100644 app/console/app_serve.go create mode 100644 bootstrap/http_kernel_handler.go diff --git a/app/console/app_serve.go b/app/console/app_serve.go new file mode 100644 index 0000000..528689e --- /dev/null +++ b/app/console/app_serve.go @@ -0,0 +1,55 @@ +package console + +import ( + "confetti-framework/config" + "fmt" + "github.com/confetti-framework/contract/inter" + "io" + net "net/http" + "strconv" + "time" +) + +type AppServe struct { + Port int `short:"p" flag:"--port"` +} + +func (s AppServe) Name() string { + return "app:serve" +} + +func (s AppServe) Description() string { + return "Start the http server to handle requests." +} + +func (s AppServe) Handle(app inter.App, output io.Writer) inter.ExitCode { + name := app.Make("config.App.Name").(string) + handler := app.Make((*net.HandlerFunc)(nil)).(func(net.ResponseWriter, *net.Request)) + url := config.App.Url + s.getPortAddr(app) + + _, _ = fmt.Fprintln(output, "Start "+name+" to handle requests on "+url) + server := &net.Server{ + Addr: s.getPortAddr(app), + Handler: net.HandlerFunc(handler), + WriteTimeout: 30 * time.Second, + ReadTimeout: 30 * time.Second, + } + if err := server.ListenAndServe(); err != nil && err != net.ErrServerClosed { + _, _ = fmt.Fprintln(output, "Could not ", err) + return inter.Failure + } + + _, _ = fmt.Fprintln(output, "Server stopped") + + return inter.Success +} + +func (s AppServe) getPortAddr(app inter.App) string { + var port int + if s.Port != 0 { + port = s.Port + } else { + port = app.Make("config.App.Port").(int) + } + return ":" + strconv.Itoa(port) +} diff --git a/app/console/kernel.go b/app/console/kernel.go index 290656a..3c9bfa1 100755 --- a/app/console/kernel.go +++ b/app/console/kernel.go @@ -9,9 +9,9 @@ func NewKernel(app inter.App) console.Kernel { return console.Kernel{ App: app, Commands: []inter.Command{ - console.AppServe{}, - console.LogClean{}, + AppServe{}, YourFirstCommand{}, + console.LogClear{}, }, } } diff --git a/app/console/your_first_command.go b/app/console/your_first_command.go index 547fd33..2b7a3e5 100644 --- a/app/console/your_first_command.go +++ b/app/console/your_first_command.go @@ -7,7 +7,7 @@ import ( ) type YourFirstCommand struct { - YourFirstFlag string `flag:"first"` + YourFirstFlag string `short:"f" flag:"first" description:"Configure your flag"` } func (t YourFirstCommand) Name() string { diff --git a/bootstrap/app.go b/bootstrap/app.go index 8d185ef..a8d027f 100755 --- a/bootstrap/app.go +++ b/bootstrap/app.go @@ -1,11 +1,12 @@ package bootstrap import ( - "github.com/confetti-framework/contract/inter" - "github.com/confetti-framework/foundation" "confetti-framework/app/console" "confetti-framework/app/http" "confetti-framework/app/http/decorator" + "github.com/confetti-framework/contract/inter" + "github.com/confetti-framework/foundation" + net "net/http" ) var bootContainer inter.Container @@ -53,5 +54,10 @@ func NewAppFromBoot() inter.App { console.NewKernel(app), ) + app.Bind( + (*net.HandlerFunc)(nil), + HandleHttpKernel, + ) + return app } diff --git a/bootstrap/http_kernel_handler.go b/bootstrap/http_kernel_handler.go new file mode 100644 index 0000000..47987f5 --- /dev/null +++ b/bootstrap/http_kernel_handler.go @@ -0,0 +1,22 @@ +package bootstrap + +import ( + "github.com/confetti-framework/foundation/http" + net "net/http" +) + +func HandleHttpKernel(response net.ResponseWriter, request *net.Request) { + /* + |-------------------------------------------------------------------------- + | Turn On The Lights + |-------------------------------------------------------------------------- + | + | We need to illuminate Go development, so let us turn on the lights. + | This bootstraps the framework and gets it ready for use, then it + | will load up this application so that we can run it and send + | the responses back to the browser and delight our users. + | + */ + app := NewAppFromBoot() + http.HandleHttpKernel(app, response, request) +} diff --git a/go.mod b/go.mod index 1dcc52a..7afbb9e 100644 --- a/go.mod +++ b/go.mod @@ -16,3 +16,9 @@ require ( golang.org/x/text v0.3.5 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) + +replace ( + github.com/confetti-framework/foundation v0.4.0 => ../foundation + github.com/confetti-framework/contract v0.1.2 => ../contract + github.com/confetti-framework/support v0.2.0 => ../support +) diff --git a/go.sum b/go.sum index 989fc91..0c676f0 100644 --- a/go.sum +++ b/go.sum @@ -35,10 +35,13 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E= github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/jedib0t/go-pretty/v6 v6.1.0 h1:NVS2PT3ZvzMb47DzS50cmsK6xkf8SSyLfroSSIG20JI= +github.com/jedib0t/go-pretty/v6 v6.1.0/go.mod h1:+nE9fyyHGil+PuISTCrp7avEdo6bqoMwqZnuiK2r2a0= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= @@ -48,7 +51,10 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= @@ -59,6 +65,10 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/thatisuday/clapper v1.0.10 h1:1EkqE/nb4npp8DuTKnpvVzO/Mcac9lOPND34uUKF+bU= +github.com/thatisuday/clapper v1.0.10/go.mod h1:FQGIg8q2uzeI+3SUS82YKF4E3KexkHStbiK4qTfDknM= +github.com/thatisuday/commando v1.0.4 h1:aNdH9tvmx2EPG6rT3NTQOV/qFYPf4Ap4Spo+q+n9Ois= +github.com/thatisuday/commando v1.0.4/go.mod h1:ODGz6jwJs4QqhLJtCjRRs8xIrmLLMdatYYddP+v1b4E= github.com/tidwall/gjson v1.6.0 h1:9VEQWz6LLMUsUl6PueE49ir4Ka6CzLymOAZDxpFsTDc= github.com/tidwall/gjson v1.6.0/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= github.com/tidwall/gjson v1.6.7 h1:Mb1M9HZCRWEcXQ8ieJo7auYyyiSux6w9XN3AdTpxJrE= @@ -79,6 +89,7 @@ github.com/vigneshuvi/GoDateFormat v0.0.0-20190923034126-379ee8a8c45f h1:DvU+3Rl github.com/vigneshuvi/GoDateFormat v0.0.0-20190923034126-379ee8a8c45f/go.mod h1:190gFTWxRNREiiPal7zWZlNrwFSpv3BxDmOfgYqoYCY= github.com/vigneshuvi/GoDateFormat v0.0.0-20210204121036-67364dc23c79 h1:37VzBuFO88QQnCEu+G41v9IqgJNBXR+4vR9vGwVqJ00= github.com/vigneshuvi/GoDateFormat v0.0.0-20210204121036-67364dc23c79/go.mod h1:190gFTWxRNREiiPal7zWZlNrwFSpv3BxDmOfgYqoYCY= +golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= diff --git a/main.go b/main.go index 517ad9d..012e053 100755 --- a/main.go +++ b/main.go @@ -1,99 +1,32 @@ package main import ( + "confetti-framework/app/console" "confetti-framework/bootstrap" - "confetti-framework/config" - "github.com/confetti-framework/contract/inter" - "github.com/confetti-framework/foundation/http" - "log" - net "net/http" - "strconv" - "strings" - "time" + "os" ) func main() { - log.Println("Start " + config.App.Name + " to handle requests") - server := &net.Server{ - Addr: ":" + strconv.Itoa(config.App.Port), - Handler: net.HandlerFunc(HandleKernel), - WriteTimeout: 30 * time.Second, - ReadTimeout: 30 * time.Second, - } - if err := server.ListenAndServe(); err != nil && err != net.ErrServerClosed { - log.Fatal("Could not ", err) - } - - log.Println("Server stopped") -} - -func HandleKernel(response net.ResponseWriter, request *net.Request) { /* |-------------------------------------------------------------------------- | Turn On The Lights |-------------------------------------------------------------------------- | - | We need to illuminate Go development, so let us turn on the lights. - | This bootstraps the framework and gets it ready for use, then it - | will load up this application so that we can run it and send - | the responses back to the browser and delight our users. - | - */ - app := bootstrap.NewAppFromBoot() - - /* - |-------------------------------------------------------------------------- - | Register the response writer - |-------------------------------------------------------------------------- | - | Confetti only uses the response writer here in main.go. But we register - | the response writer if you need it anyway | */ - app.Singleton( - (*net.ResponseWriter)(nil), - response, - ) + app := bootstrap.NewAppFromBoot() /* |-------------------------------------------------------------------------- | Run The Application |-------------------------------------------------------------------------- | - | Once we have the application, we can handle the incoming request - | through the kernel, and send the associated response back to - | the client allowing them to enjoy the creative - | and awesome application we have prepared for them. + | Once we have the application, we can handle the command + | through the kernel. | */ - kernel := app.Make((*inter.HttpKernel)(nil)).(http.Kernel) - - appRequest := http.NewRequest(http.Options{App: app, Source: *request}) - - defer func() { - if rec := recover(); rec != nil { - appResponse := kernel.RecoverFromMiddlewarePanic(rec) - exposeResponse(response, appResponse) - } - }() - - appResponse := kernel.Handle(appRequest) - - exposeResponse(response, appResponse) -} - -func exposeResponse(response net.ResponseWriter, appResponse inter.Response) { - // Add HTTP headers - for key, values := range appResponse.GetHeaders() { - response.Header().Add(key, strings.Join(values, "; ")) - } - - // Add HTTP status - response.WriteHeader(appResponse.GetStatus()) - - // Add HTTP body - _, err := response.Write([]byte(appResponse.GetBody())) - if err != nil { - panic(err) - } + kernel := console.NewKernel(app) + code := kernel.Handle() + os.Exit(int(code)) } From ddd41ce31b24654d1101b807e72dd08122c79899 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Sat, 20 Feb 2021 17:55:21 +0100 Subject: [PATCH 03/13] confetti-framework/confetti#105 bump versions for console --- go.mod | 17 +++-------------- go.sum | 42 +++++++----------------------------------- 2 files changed, 10 insertions(+), 49 deletions(-) diff --git a/go.mod b/go.mod index 7afbb9e..e8c8497 100644 --- a/go.mod +++ b/go.mod @@ -3,22 +3,11 @@ module confetti-framework go 1.15 require ( - github.com/confetti-framework/contract v0.1.2 + github.com/confetti-framework/contract v0.2.0-beta github.com/confetti-framework/errors v0.11.0 - github.com/confetti-framework/foundation v0.4.0 - github.com/confetti-framework/support v0.2.0 + github.com/confetti-framework/foundation v0.5.0-beta + github.com/confetti-framework/support v0.2.1 github.com/confetti-framework/syslog v0.1.1 github.com/confetti-framework/validation v0.1.0-rc.1 - github.com/gorilla/mux v1.8.0 // indirect - github.com/kr/text v0.2.0 // indirect - github.com/tidwall/gjson v1.6.8 // indirect - github.com/vigneshuvi/GoDateFormat v0.0.0-20210204121036-67364dc23c79 // indirect golang.org/x/text v0.3.5 - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect -) - -replace ( - github.com/confetti-framework/foundation v0.4.0 => ../foundation - github.com/confetti-framework/contract v0.1.2 => ../contract - github.com/confetti-framework/support v0.2.0 => ../support ) diff --git a/go.sum b/go.sum index 0c676f0..003dd10 100644 --- a/go.sum +++ b/go.sum @@ -1,30 +1,17 @@ github.com/confetti-framework/contract v0.1.0-rc.1 h1:uNppEfy6lP4b4PKGdpW5Z7t40rKn27PnI86Yw72ZseA= github.com/confetti-framework/contract v0.1.0-rc.1/go.mod h1:8RAxkoUGEArjrzpBmypkSHd1RWr4/NRLr7Uaa4+cVJs= -github.com/confetti-framework/contract v0.1.1-rc.1 h1:7v1CjjEsXMwaWmasmBqg93ROnka7sQPvCqJ0CSQyt+0= -github.com/confetti-framework/contract v0.1.1-rc.1/go.mod h1:8RAxkoUGEArjrzpBmypkSHd1RWr4/NRLr7Uaa4+cVJs= -github.com/confetti-framework/contract v0.1.2 h1:40Wt/LgX2/HtyuiQekFgCgO+4pX2ODEssF0jlFlBn/8= -github.com/confetti-framework/contract v0.1.2/go.mod h1:4IIdDZfKW0xPshLjuIEesemD1Zd1FqFYt2kpkooB9g8= +github.com/confetti-framework/contract v0.2.0-beta h1:BIhCgsXWyAIrpSoQR89w+b2ZRaKW0LGIGQTFbZzsnWE= +github.com/confetti-framework/contract v0.2.0-beta/go.mod h1:4IIdDZfKW0xPshLjuIEesemD1Zd1FqFYt2kpkooB9g8= github.com/confetti-framework/errors v0.11.0-rc.1 h1:Docd/3JG4DwVAiz/KSXnO31fS4wv3rWFPLhgv9c9KVI= github.com/confetti-framework/errors v0.11.0-rc.1/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= github.com/confetti-framework/errors v0.11.0 h1:rIOBgIpw5zGb25q5Pfg2cIk4vMCQb+Gs/kdaEze7BHY= github.com/confetti-framework/errors v0.11.0/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= -github.com/confetti-framework/foundation v0.3.0-rc.2/go.mod h1:Fnl/b5HgUsNZnnpsUpNqmAYN+Ny0OrAFyCZeQKZqPHs= -github.com/confetti-framework/foundation v0.3.1 h1:OV39RqZ3R/+XHCuvdJxYIIIDd/zeYM0MR2qwUo7Pha0= -github.com/confetti-framework/foundation v0.3.1/go.mod h1:ALWdxA5ZKKXMwqek47q4PJkShT0EDbsy5WgdZc5e3tg= -github.com/confetti-framework/foundation v0.3.2 h1:RwDFC00EUP2xXwq5EG6ZdZXAYehGX0kGBuwfKs1jhg8= -github.com/confetti-framework/foundation v0.3.2/go.mod h1:dnT6l0DPJKJWrYfDP9T+Ik6b/+bUHq7xA7IKmbPtsAk= -github.com/confetti-framework/foundation v0.3.3 h1:fuLFz0F0T5wsBA8Dc5taY3u72NaLYtSyLea4AOfaxgg= -github.com/confetti-framework/foundation v0.3.3/go.mod h1:c8n/bUj2RzO8uknE4ohzwSGv8awBYUOl3VzbiF//9z0= -github.com/confetti-framework/foundation v0.4.0 h1:f7ouXQ5lObbfBX85m9fnGqWLAx9zjeZKN/K9lk8DTU8= -github.com/confetti-framework/foundation v0.4.0/go.mod h1:c8n/bUj2RzO8uknE4ohzwSGv8awBYUOl3VzbiF//9z0= -github.com/confetti-framework/routing v0.5.0-rc.2/go.mod h1:OaxFjhc1hwj1ela8C6A8MutRjlDNmRbxQrtKncJ5DHM= -github.com/confetti-framework/routing v0.5.0-rc.7/go.mod h1:y1Ckjt7364ZdL9PhQdTT1HVfuTOI3+ynnkvNxLdM9n0= +github.com/confetti-framework/foundation v0.5.0-beta h1:5fCMrXsw1ihHGrQQvXUELXuLdPzGCUoUi5N0oxJPZ0I= +github.com/confetti-framework/foundation v0.5.0-beta/go.mod h1:4RWct2I8wQ4Pcjr+qfRtmwm8DLNuA2LvbLnnXNJ2aFY= github.com/confetti-framework/support v0.2.0-rc.1 h1:LSF3NDIVqPpRJEEj4r+4N1PoJfAvGxe0Hdr2sNHwJ60= github.com/confetti-framework/support v0.2.0-rc.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= -github.com/confetti-framework/support v0.2.0-rc.2 h1:8VT+f4BFI7HrquqRjrYIdq+79NoNt7pCbGLf3t+XCI0= -github.com/confetti-framework/support v0.2.0-rc.2/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= -github.com/confetti-framework/support v0.2.0 h1:mUxED5PnvtJqZBpxRrhkFtpUU+gm3EchnAdNAyIxwMA= -github.com/confetti-framework/support v0.2.0/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= +github.com/confetti-framework/support v0.2.1 h1:yP4dCSNTmQFODABpLZEiQxvLejb2m5TrJGCGQGgSx/s= +github.com/confetti-framework/support v0.2.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= github.com/confetti-framework/syslog v0.1.0-rc h1:BqzyW2p9uSxYOL1MQFrMGAcsix7X5nW8bgHlf7SuZkM= github.com/confetti-framework/syslog v0.1.0-rc/go.mod h1:O6eT3y5cYDGQSVT6lrhScB5NKdylG0R304PmGiChm7Y= github.com/confetti-framework/syslog v0.1.1 h1:ZYea1UXjp/m1DajS6regPislq+kUhe6+/RpNzCaJ8js= @@ -36,8 +23,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E= -github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= -github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/jedib0t/go-pretty/v6 v6.1.0 h1:NVS2PT3ZvzMb47DzS50cmsK6xkf8SSyLfroSSIG20JI= @@ -65,22 +50,10 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/thatisuday/clapper v1.0.10 h1:1EkqE/nb4npp8DuTKnpvVzO/Mcac9lOPND34uUKF+bU= -github.com/thatisuday/clapper v1.0.10/go.mod h1:FQGIg8q2uzeI+3SUS82YKF4E3KexkHStbiK4qTfDknM= -github.com/thatisuday/commando v1.0.4 h1:aNdH9tvmx2EPG6rT3NTQOV/qFYPf4Ap4Spo+q+n9Ois= -github.com/thatisuday/commando v1.0.4/go.mod h1:ODGz6jwJs4QqhLJtCjRRs8xIrmLLMdatYYddP+v1b4E= -github.com/tidwall/gjson v1.6.0 h1:9VEQWz6LLMUsUl6PueE49ir4Ka6CzLymOAZDxpFsTDc= -github.com/tidwall/gjson v1.6.0/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= -github.com/tidwall/gjson v1.6.7 h1:Mb1M9HZCRWEcXQ8ieJo7auYyyiSux6w9XN3AdTpxJrE= -github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= github.com/tidwall/gjson v1.6.8 h1:CTmXMClGYPAmln7652e69B7OLXfTi5ABcPPwjIWUv7w= github.com/tidwall/gjson v1.6.8/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= -github.com/tidwall/match v1.0.1 h1:PnKP62LPNxHKTwvHHZZzdOAOCtsJTjo6dZLCwpKm5xc= -github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= github.com/tidwall/match v1.0.3 h1:FQUVvBImDutD8wJLN6c5eMzWtjgONK9MwIBCOrUJKeE= github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU= github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/uniplaces/carbon v0.1.6 h1:JVxwWs8FfwAN+PvB2bh9WCZRX2u1Vp77cGXr51uzxJs= @@ -89,6 +62,7 @@ github.com/vigneshuvi/GoDateFormat v0.0.0-20190923034126-379ee8a8c45f h1:DvU+3Rl github.com/vigneshuvi/GoDateFormat v0.0.0-20190923034126-379ee8a8c45f/go.mod h1:190gFTWxRNREiiPal7zWZlNrwFSpv3BxDmOfgYqoYCY= github.com/vigneshuvi/GoDateFormat v0.0.0-20210204121036-67364dc23c79 h1:37VzBuFO88QQnCEu+G41v9IqgJNBXR+4vR9vGwVqJ00= github.com/vigneshuvi/GoDateFormat v0.0.0-20210204121036-67364dc23c79/go.mod h1:190gFTWxRNREiiPal7zWZlNrwFSpv3BxDmOfgYqoYCY= +golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c h1:uHnKXcvx6SNkuwC+nrzxkJ+TpPwZOtumbhWrrOYN5YA= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -101,7 +75,5 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From e2ab8642d0ad86d859c95ea5e960aaaaae8cdd81 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Mon, 22 Feb 2021 22:34:39 +0100 Subject: [PATCH 04/13] confetti-framework/confetti#105 match flags with custom types --- app/console/app_serve.go | 2 +- app/console/flag_type/int_list.go | 36 ++++++++++++++++++++++++++++ app/console/flag_type/string_list.go | 24 +++++++++++++++++++ app/console/kernel.go | 10 ++++++++ go.mod | 6 ++--- go.sum | 10 ++++---- 6 files changed, 80 insertions(+), 8 deletions(-) create mode 100644 app/console/flag_type/int_list.go create mode 100644 app/console/flag_type/string_list.go diff --git a/app/console/app_serve.go b/app/console/app_serve.go index 528689e..654eda8 100644 --- a/app/console/app_serve.go +++ b/app/console/app_serve.go @@ -11,7 +11,7 @@ import ( ) type AppServe struct { - Port int `short:"p" flag:"--port"` + Port int `short:"p" flag:"port"` } func (s AppServe) Name() string { diff --git a/app/console/flag_type/int_list.go b/app/console/flag_type/int_list.go new file mode 100644 index 0000000..5f550f1 --- /dev/null +++ b/app/console/flag_type/int_list.go @@ -0,0 +1,36 @@ +{package flag_type + +import ( + "fmt" + "github.com/confetti-framework/errors" + "strconv" + "strings" +) + +type IntList []int + +func (s *IntList) String() string { + return fmt.Sprintf("%v", *s) +} + +func (s *IntList) Set(value string) error { + //goland:noinspection GoPreferNilSlice + result := []int{} + for _, part := range strings.Split(value, ",") { + v, err := strconv.ParseInt(part, 0, 0) + if err != nil { + return errors.New("unable to cast %#v of type %T to int", part, part) + } + + result = append(result, int(v)) + } + *s = result + return nil +} + +// Get returns the value of type which must be +// the same type as defined in a field of a command. +func (s *IntList) Get() interface{} { + return []int(*s) +} + diff --git a/app/console/flag_type/string_list.go b/app/console/flag_type/string_list.go new file mode 100644 index 0000000..27d6bc3 --- /dev/null +++ b/app/console/flag_type/string_list.go @@ -0,0 +1,24 @@ +package flag_type + +import ( + "fmt" + "strings" +) + +type StringList []string + +func (s *StringList) String() string { + return fmt.Sprintf("%v", *s) +} + +func (s *StringList) Set(value string) error { + *s = strings.Split(value, ",") + return nil +} + +// Get returns the value of type which must be +// the same type as defined in a field of a command. +func (s *StringList) Get() interface{} { + return []string(*s) +} + diff --git a/app/console/kernel.go b/app/console/kernel.go index 3c9bfa1..2461774 100755 --- a/app/console/kernel.go +++ b/app/console/kernel.go @@ -1,10 +1,19 @@ package console import ( + "confetti-framework/app/console/flag_type" + "flag" "github.com/confetti-framework/contract/inter" "github.com/confetti-framework/foundation/console" ) +var flagGetters = func() []flag.Getter { + return []flag.Getter{ + new(flag_type.StringList), + new(flag_type.IntList), + } +} + func NewKernel(app inter.App) console.Kernel { return console.Kernel{ App: app, @@ -13,5 +22,6 @@ func NewKernel(app inter.App) console.Kernel { YourFirstCommand{}, console.LogClear{}, }, + FlagProviders: []func() []flag.Getter{flagGetters}, } } diff --git a/go.mod b/go.mod index e8c8497..3bb40f1 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,10 @@ module confetti-framework go 1.15 require ( - github.com/confetti-framework/contract v0.2.0-beta + github.com/confetti-framework/contract v0.2.0 github.com/confetti-framework/errors v0.11.0 - github.com/confetti-framework/foundation v0.5.0-beta - github.com/confetti-framework/support v0.2.1 + github.com/confetti-framework/foundation v0.5.1 + github.com/confetti-framework/support v0.2.2 github.com/confetti-framework/syslog v0.1.1 github.com/confetti-framework/validation v0.1.0-rc.1 golang.org/x/text v0.3.5 diff --git a/go.sum b/go.sum index 003dd10..fef2a78 100644 --- a/go.sum +++ b/go.sum @@ -2,16 +2,18 @@ github.com/confetti-framework/contract v0.1.0-rc.1 h1:uNppEfy6lP4b4PKGdpW5Z7t40r github.com/confetti-framework/contract v0.1.0-rc.1/go.mod h1:8RAxkoUGEArjrzpBmypkSHd1RWr4/NRLr7Uaa4+cVJs= github.com/confetti-framework/contract v0.2.0-beta h1:BIhCgsXWyAIrpSoQR89w+b2ZRaKW0LGIGQTFbZzsnWE= github.com/confetti-framework/contract v0.2.0-beta/go.mod h1:4IIdDZfKW0xPshLjuIEesemD1Zd1FqFYt2kpkooB9g8= +github.com/confetti-framework/contract v0.2.0 h1:n3v7pzL1E4HQKQFjD512/r4kyqqN5GtbQbQP4ZZOtxA= +github.com/confetti-framework/contract v0.2.0/go.mod h1:4IIdDZfKW0xPshLjuIEesemD1Zd1FqFYt2kpkooB9g8= github.com/confetti-framework/errors v0.11.0-rc.1 h1:Docd/3JG4DwVAiz/KSXnO31fS4wv3rWFPLhgv9c9KVI= github.com/confetti-framework/errors v0.11.0-rc.1/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= github.com/confetti-framework/errors v0.11.0 h1:rIOBgIpw5zGb25q5Pfg2cIk4vMCQb+Gs/kdaEze7BHY= github.com/confetti-framework/errors v0.11.0/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= -github.com/confetti-framework/foundation v0.5.0-beta h1:5fCMrXsw1ihHGrQQvXUELXuLdPzGCUoUi5N0oxJPZ0I= -github.com/confetti-framework/foundation v0.5.0-beta/go.mod h1:4RWct2I8wQ4Pcjr+qfRtmwm8DLNuA2LvbLnnXNJ2aFY= +github.com/confetti-framework/foundation v0.5.1 h1:/4kMvNM2+rW+5Os3MCZucL6JW9j2Prl5/uJycshYAGw= +github.com/confetti-framework/foundation v0.5.1/go.mod h1:2eEroQIB9J07NMMzACu+3IJvTHCoLZ0OIMzBZTkyM/o= github.com/confetti-framework/support v0.2.0-rc.1 h1:LSF3NDIVqPpRJEEj4r+4N1PoJfAvGxe0Hdr2sNHwJ60= github.com/confetti-framework/support v0.2.0-rc.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= -github.com/confetti-framework/support v0.2.1 h1:yP4dCSNTmQFODABpLZEiQxvLejb2m5TrJGCGQGgSx/s= -github.com/confetti-framework/support v0.2.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= +github.com/confetti-framework/support v0.2.2 h1:T2Vb+yBPznWO5v8oXY1BkeiEeyfXzvdbJIHqGw9CByI= +github.com/confetti-framework/support v0.2.2/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= github.com/confetti-framework/syslog v0.1.0-rc h1:BqzyW2p9uSxYOL1MQFrMGAcsix7X5nW8bgHlf7SuZkM= github.com/confetti-framework/syslog v0.1.0-rc/go.mod h1:O6eT3y5cYDGQSVT6lrhScB5NKdylG0R304PmGiChm7Y= github.com/confetti-framework/syslog v0.1.1 h1:ZYea1UXjp/m1DajS6regPislq+kUhe6+/RpNzCaJ8js= From d52f7a60a17dc6187e9a02a6e200a2a69f64a9e5 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Mon, 22 Feb 2021 23:23:25 +0100 Subject: [PATCH 05/13] confetti-framework/confetti#105 match flags with custom types --- app/console/flag_type/int_list.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/console/flag_type/int_list.go b/app/console/flag_type/int_list.go index 5f550f1..813b995 100644 --- a/app/console/flag_type/int_list.go +++ b/app/console/flag_type/int_list.go @@ -1,4 +1,4 @@ -{package flag_type +package flag_type import ( "fmt" From 8fa396955cfbaa0a0c636515e744463c6b06c73c Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Mon, 22 Feb 2021 23:39:20 +0100 Subject: [PATCH 06/13] confetti-framework/confetti#105 match flags with custom types --- .env | 2 +- Dockerfile | 2 +- app/console/app_serve.go | 4 +--- config/logging.go | 2 +- go.mod | 2 +- go.sum | 4 ++-- 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.env b/.env index 45da755..918faf7 100755 --- a/.env +++ b/.env @@ -8,6 +8,6 @@ APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 -DB_DATABASE=laravel +DB_DATABASE=confetti DB_USERNAME=root DB_PASSWORD= diff --git a/Dockerfile b/Dockerfile index 828b9ad..f6704c8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,4 +61,4 @@ RUN chown -R confetti:confetti $GOCACHE $GOMODCACHE USER confetti RUN go get github.com/cespare/reflex -CMD ~/go/bin/reflex -r '(\.go$|\.gohtml$|go\.mod$|\.env$)' -s -- sh -c "go run -race main.go" +CMD ~/go/bin/reflex -r '(\.go$|\.gohtml$|go\.mod$|\.env$)' -s -- sh -c "go run -race main.go app:serve" diff --git a/app/console/app_serve.go b/app/console/app_serve.go index 654eda8..7b77ecb 100644 --- a/app/console/app_serve.go +++ b/app/console/app_serve.go @@ -1,7 +1,6 @@ package console import ( - "confetti-framework/config" "fmt" "github.com/confetti-framework/contract/inter" "io" @@ -25,9 +24,8 @@ func (s AppServe) Description() string { func (s AppServe) Handle(app inter.App, output io.Writer) inter.ExitCode { name := app.Make("config.App.Name").(string) handler := app.Make((*net.HandlerFunc)(nil)).(func(net.ResponseWriter, *net.Request)) - url := config.App.Url + s.getPortAddr(app) - _, _ = fmt.Fprintln(output, "Start "+name+" to handle requests on "+url) + _, _ = fmt.Fprintln(output, "Start "+name+" to handle requests") server := &net.Server{ Addr: s.getPortAddr(app), Handler: net.HandlerFunc(handler), diff --git a/config/logging.go b/config/logging.go index f364582..7d78c96 100644 --- a/config/logging.go +++ b/config/logging.go @@ -30,7 +30,7 @@ var Logging = struct { |-------------------------------------------------------------------------- | | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the confetti-framework/syslog logging library. This gives + | the box, Confetti uses the confetti-framework/syslog logging library. This gives | you a variety of powerful log handlers / formatters to utilize. | | The name provided is for reference only, so you can log specifically to diff --git a/go.mod b/go.mod index 3bb40f1..c093f8c 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.15 require ( github.com/confetti-framework/contract v0.2.0 github.com/confetti-framework/errors v0.11.0 - github.com/confetti-framework/foundation v0.5.1 + github.com/confetti-framework/foundation v0.5.3 github.com/confetti-framework/support v0.2.2 github.com/confetti-framework/syslog v0.1.1 github.com/confetti-framework/validation v0.1.0-rc.1 diff --git a/go.sum b/go.sum index fef2a78..6a8aeda 100644 --- a/go.sum +++ b/go.sum @@ -8,8 +8,8 @@ github.com/confetti-framework/errors v0.11.0-rc.1 h1:Docd/3JG4DwVAiz/KSXnO31fS4w github.com/confetti-framework/errors v0.11.0-rc.1/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= github.com/confetti-framework/errors v0.11.0 h1:rIOBgIpw5zGb25q5Pfg2cIk4vMCQb+Gs/kdaEze7BHY= github.com/confetti-framework/errors v0.11.0/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= -github.com/confetti-framework/foundation v0.5.1 h1:/4kMvNM2+rW+5Os3MCZucL6JW9j2Prl5/uJycshYAGw= -github.com/confetti-framework/foundation v0.5.1/go.mod h1:2eEroQIB9J07NMMzACu+3IJvTHCoLZ0OIMzBZTkyM/o= +github.com/confetti-framework/foundation v0.5.3 h1:ybTQbWHoSjiJbUNbBXLGGEq/nLmTeSclXW+Zjxr2d38= +github.com/confetti-framework/foundation v0.5.3/go.mod h1:2eEroQIB9J07NMMzACu+3IJvTHCoLZ0OIMzBZTkyM/o= github.com/confetti-framework/support v0.2.0-rc.1 h1:LSF3NDIVqPpRJEEj4r+4N1PoJfAvGxe0Hdr2sNHwJ60= github.com/confetti-framework/support v0.2.0-rc.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= github.com/confetti-framework/support v0.2.2 h1:T2Vb+yBPznWO5v8oXY1BkeiEeyfXzvdbJIHqGw9CByI= From 574f638817d3568454140618c1603a0072a33009 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Wed, 24 Feb 2021 21:48:32 +0100 Subject: [PATCH 07/13] confetti-framework/confetti#105 move console.LogClear to foundation --- app/console/app_serve.go | 10 +++++----- app/console/kernel.go | 1 - app/console/your_first_command.go | 5 +++-- main.go | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/console/app_serve.go b/app/console/app_serve.go index 7b77ecb..78e4070 100644 --- a/app/console/app_serve.go +++ b/app/console/app_serve.go @@ -1,4 +1,4 @@ -package console +package console import ( "fmt" @@ -21,11 +21,11 @@ func (s AppServe) Description() string { return "Start the http server to handle requests." } -func (s AppServe) Handle(app inter.App, output io.Writer) inter.ExitCode { +func (s AppServe) Handle(app inter.App, writer io.Writer) inter.ExitCode { name := app.Make("config.App.Name").(string) handler := app.Make((*net.HandlerFunc)(nil)).(func(net.ResponseWriter, *net.Request)) - _, _ = fmt.Fprintln(output, "Start "+name+" to handle requests") + _, _ = fmt.Fprintln(writer, "Start "+name+" to handle requests") server := &net.Server{ Addr: s.getPortAddr(app), Handler: net.HandlerFunc(handler), @@ -33,11 +33,11 @@ func (s AppServe) Handle(app inter.App, output io.Writer) inter.ExitCode { ReadTimeout: 30 * time.Second, } if err := server.ListenAndServe(); err != nil && err != net.ErrServerClosed { - _, _ = fmt.Fprintln(output, "Could not ", err) + _, _ = fmt.Fprintln(writer, "Could not ", err) return inter.Failure } - _, _ = fmt.Fprintln(output, "Server stopped") + _, _ = fmt.Fprintln(writer, "Server stopped") return inter.Success } diff --git a/app/console/kernel.go b/app/console/kernel.go index 2461774..a5123c3 100755 --- a/app/console/kernel.go +++ b/app/console/kernel.go @@ -20,7 +20,6 @@ func NewKernel(app inter.App) console.Kernel { Commands: []inter.Command{ AppServe{}, YourFirstCommand{}, - console.LogClear{}, }, FlagProviders: []func() []flag.Getter{flagGetters}, } diff --git a/app/console/your_first_command.go b/app/console/your_first_command.go index 2b7a3e5..2a0c674 100644 --- a/app/console/your_first_command.go +++ b/app/console/your_first_command.go @@ -18,8 +18,9 @@ func (t YourFirstCommand) Description() string { return "You can adjust this command to your wishes." } -func (t YourFirstCommand) Handle(app inter.App, writer io.Writer) inter.ExitCode { - _, _ = fmt.Fprint(writer, "Value in first flag: "+t.YourFirstFlag) +func (t YourFirstCommand) Handle(app inter.App, output io.Writer) inter.ExitCode { + _, _ = fmt.Fprintln(output, "Value in first flag: "+t.YourFirstFlag) + _, _ = fmt.Fprintln(output, "Done") return inter.Success } diff --git a/main.go b/main.go index 012e053..6e7efa3 100755 --- a/main.go +++ b/main.go @@ -1,8 +1,8 @@ package main import ( - "confetti-framework/app/console" "confetti-framework/bootstrap" + "github.com/confetti-framework/contract/inter" "os" ) @@ -26,7 +26,7 @@ func main() { | through the kernel. | */ - kernel := console.NewKernel(app) + kernel := app.Make((*inter.ConsoleKernel)(nil)).(inter.ConsoleKernel) code := kernel.Handle() os.Exit(int(code)) } From fde265f06c3b08ad75bdfba2112314c3139ccc77 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Sat, 27 Feb 2021 00:40:44 +0100 Subject: [PATCH 08/13] confetti-framework/confetti#105 implement required flag --- app/console/{ => commands}/app_serve.go | 2 +- app/console/commands/example_command.go | 34 +++++++++++++++++++ app/console/commands/tmp.go | 27 +++++++++++++++ .../{flag_type => getters}/int_list.go | 2 +- .../{flag_type => getters}/string_list.go | 3 +- app/console/kernel.go | 11 +++--- app/console/your_first_command.go | 26 -------------- 7 files changed, 70 insertions(+), 35 deletions(-) rename app/console/{ => commands}/app_serve.go (98%) create mode 100644 app/console/commands/example_command.go create mode 100644 app/console/commands/tmp.go rename app/console/{flag_type => getters}/int_list.go (97%) rename app/console/{flag_type => getters}/string_list.go (95%) delete mode 100644 app/console/your_first_command.go diff --git a/app/console/app_serve.go b/app/console/commands/app_serve.go similarity index 98% rename from app/console/app_serve.go rename to app/console/commands/app_serve.go index 78e4070..73cc373 100644 --- a/app/console/app_serve.go +++ b/app/console/commands/app_serve.go @@ -1,4 +1,4 @@ -package console +package commands import ( "fmt" diff --git a/app/console/commands/example_command.go b/app/console/commands/example_command.go new file mode 100644 index 0000000..29fe6c3 --- /dev/null +++ b/app/console/commands/example_command.go @@ -0,0 +1,34 @@ +package commands + +import ( + "fmt" + "github.com/confetti-framework/contract/inter" + "github.com/confetti-framework/support" + "io" +) + +type ExampleCommand struct { + FirstFlag string `short:"f" flag:"first" description:"Configure your first flag" required:"true"` + SecondFlag bool `short:"s" flag:"second" description:"Configure your second flag" required:"true"` + Ids []int `short:"I"` +} + +func (t ExampleCommand) Name() string { + return "example:command" +} + +func (t ExampleCommand) Description() string { + return "You can adjust this command to your wishes." +} + +func (t ExampleCommand) Handle(app inter.App, output io.Writer) inter.ExitCode { + _, _ = fmt.Fprintln(output, "Value in fist flag: "+t.FirstFlag) + support.Dump(t.Ids) + + if t.SecondFlag { + _, _ = fmt.Fprintln(output, "Value in second flag is true") + } + + _, _ = fmt.Fprintln(output, "Done") + return inter.Success +} diff --git a/app/console/commands/tmp.go b/app/console/commands/tmp.go new file mode 100644 index 0000000..f55df71 --- /dev/null +++ b/app/console/commands/tmp.go @@ -0,0 +1,27 @@ +package commands + +// import ( +// "confetti-framework/app/support" +// "github.com/confetti-framework/contract/inter" +// "io" +// ) +// +// type SendEmails struct { +// Names []string `short:"N" flag:"names"` +// Ids []int `short:"I" flag:"ids"` +// } +// +// func (s SendEmails) Name() string { +// return "mail:send" +// } +// +// func (s SendEmails) Description() string { +// return "Send a marketing email to a user." +// } +// +// func (s SendEmails) Handle(app inter.App, writer io.Writer) inter.ExitCode { +// mailer := app.Make(support.DripEmailer{}).(support.DripEmailer) +// mailer.Send(s.Email) +// +// return inter.Success +// } diff --git a/app/console/flag_type/int_list.go b/app/console/getters/int_list.go similarity index 97% rename from app/console/flag_type/int_list.go rename to app/console/getters/int_list.go index 813b995..3682f3e 100644 --- a/app/console/flag_type/int_list.go +++ b/app/console/getters/int_list.go @@ -1,4 +1,4 @@ -package flag_type +package getters import ( "fmt" diff --git a/app/console/flag_type/string_list.go b/app/console/getters/string_list.go similarity index 95% rename from app/console/flag_type/string_list.go rename to app/console/getters/string_list.go index 27d6bc3..fbd2b12 100644 --- a/app/console/flag_type/string_list.go +++ b/app/console/getters/string_list.go @@ -1,4 +1,4 @@ -package flag_type +package getters import ( "fmt" @@ -21,4 +21,3 @@ func (s *StringList) Set(value string) error { func (s *StringList) Get() interface{} { return []string(*s) } - diff --git a/app/console/kernel.go b/app/console/kernel.go index a5123c3..54dbcb0 100755 --- a/app/console/kernel.go +++ b/app/console/kernel.go @@ -1,7 +1,8 @@ package console import ( - "confetti-framework/app/console/flag_type" + "confetti-framework/app/console/commands" + "confetti-framework/app/console/getters" "flag" "github.com/confetti-framework/contract/inter" "github.com/confetti-framework/foundation/console" @@ -9,8 +10,8 @@ import ( var flagGetters = func() []flag.Getter { return []flag.Getter{ - new(flag_type.StringList), - new(flag_type.IntList), + new(getters.StringList), + new(getters.IntList), } } @@ -18,8 +19,8 @@ func NewKernel(app inter.App) console.Kernel { return console.Kernel{ App: app, Commands: []inter.Command{ - AppServe{}, - YourFirstCommand{}, + commands.AppServe{}, + commands.ExampleCommand{}, }, FlagProviders: []func() []flag.Getter{flagGetters}, } diff --git a/app/console/your_first_command.go b/app/console/your_first_command.go deleted file mode 100644 index 2a0c674..0000000 --- a/app/console/your_first_command.go +++ /dev/null @@ -1,26 +0,0 @@ -package console - -import ( - "fmt" - "github.com/confetti-framework/contract/inter" - "io" -) - -type YourFirstCommand struct { - YourFirstFlag string `short:"f" flag:"first" description:"Configure your flag"` -} - -func (t YourFirstCommand) Name() string { - return "your:first-command" -} - -func (t YourFirstCommand) Description() string { - return "You can adjust this command to your wishes." -} - -func (t YourFirstCommand) Handle(app inter.App, output io.Writer) inter.ExitCode { - _, _ = fmt.Fprintln(output, "Value in first flag: "+t.YourFirstFlag) - - _, _ = fmt.Fprintln(output, "Done") - return inter.Success -} From f52eb49fdbde7af570eff972e1624a254ed6918d Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Mon, 1 Mar 2021 00:39:30 +0100 Subject: [PATCH 09/13] confetti-framework/confetti#105 implement interaction with command --- app/console/commands/app_serve.go | 16 +++-- app/console/commands/example_command.go | 16 +---- app/console/commands/tmp.go | 27 --------- go.sum | 81 +++++++++++++++++++++++-- 4 files changed, 86 insertions(+), 54 deletions(-) delete mode 100644 app/console/commands/tmp.go diff --git a/app/console/commands/app_serve.go b/app/console/commands/app_serve.go index 73cc373..ff48e23 100644 --- a/app/console/commands/app_serve.go +++ b/app/console/commands/app_serve.go @@ -1,9 +1,7 @@ package commands import ( - "fmt" "github.com/confetti-framework/contract/inter" - "io" net "net/http" "strconv" "time" @@ -21,23 +19,23 @@ func (s AppServe) Description() string { return "Start the http server to handle requests." } -func (s AppServe) Handle(app inter.App, writer io.Writer) inter.ExitCode { - name := app.Make("config.App.Name").(string) - handler := app.Make((*net.HandlerFunc)(nil)).(func(net.ResponseWriter, *net.Request)) +func (s AppServe) Handle(c inter.Cli) inter.ExitCode { + name := c.App().Make("config.App.Name").(string) + handler := c.App().Make((*net.HandlerFunc)(nil)).(func(net.ResponseWriter, *net.Request)) - _, _ = fmt.Fprintln(writer, "Start "+name+" to handle requests") + c.Info("Start %s to handle requests", name) server := &net.Server{ - Addr: s.getPortAddr(app), + Addr: s.getPortAddr(c.App()), Handler: net.HandlerFunc(handler), WriteTimeout: 30 * time.Second, ReadTimeout: 30 * time.Second, } if err := server.ListenAndServe(); err != nil && err != net.ErrServerClosed { - _, _ = fmt.Fprintln(writer, "Could not ", err) + c.Error("Could not %s", err) return inter.Failure } - _, _ = fmt.Fprintln(writer, "Server stopped") + c.Info("Server stopped") return inter.Success } diff --git a/app/console/commands/example_command.go b/app/console/commands/example_command.go index 29fe6c3..4d94445 100644 --- a/app/console/commands/example_command.go +++ b/app/console/commands/example_command.go @@ -1,16 +1,11 @@ package commands import ( - "fmt" "github.com/confetti-framework/contract/inter" - "github.com/confetti-framework/support" - "io" ) type ExampleCommand struct { FirstFlag string `short:"f" flag:"first" description:"Configure your first flag" required:"true"` - SecondFlag bool `short:"s" flag:"second" description:"Configure your second flag" required:"true"` - Ids []int `short:"I"` } func (t ExampleCommand) Name() string { @@ -21,14 +16,7 @@ func (t ExampleCommand) Description() string { return "You can adjust this command to your wishes." } -func (t ExampleCommand) Handle(app inter.App, output io.Writer) inter.ExitCode { - _, _ = fmt.Fprintln(output, "Value in fist flag: "+t.FirstFlag) - support.Dump(t.Ids) - - if t.SecondFlag { - _, _ = fmt.Fprintln(output, "Value in second flag is true") - } - - _, _ = fmt.Fprintln(output, "Done") +func (t ExampleCommand) Handle(c inter.Cli) inter.ExitCode { + c.Info("Value in fist flag: %s", t.FirstFlag) return inter.Success } diff --git a/app/console/commands/tmp.go b/app/console/commands/tmp.go deleted file mode 100644 index f55df71..0000000 --- a/app/console/commands/tmp.go +++ /dev/null @@ -1,27 +0,0 @@ -package commands - -// import ( -// "confetti-framework/app/support" -// "github.com/confetti-framework/contract/inter" -// "io" -// ) -// -// type SendEmails struct { -// Names []string `short:"N" flag:"names"` -// Ids []int `short:"I" flag:"ids"` -// } -// -// func (s SendEmails) Name() string { -// return "mail:send" -// } -// -// func (s SendEmails) Description() string { -// return "Send a marketing email to a user." -// } -// -// func (s SendEmails) Handle(app inter.App, writer io.Writer) inter.ExitCode { -// mailer := app.Make(support.DripEmailer{}).(support.DripEmailer) -// mailer.Send(s.Email) -// -// return inter.Success -// } diff --git a/go.sum b/go.sum index 6a8aeda..1ee212d 100644 --- a/go.sum +++ b/go.sum @@ -1,15 +1,17 @@ +github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/confetti-framework/contract v0.1.0-rc.1 h1:uNppEfy6lP4b4PKGdpW5Z7t40rKn27PnI86Yw72ZseA= github.com/confetti-framework/contract v0.1.0-rc.1/go.mod h1:8RAxkoUGEArjrzpBmypkSHd1RWr4/NRLr7Uaa4+cVJs= github.com/confetti-framework/contract v0.2.0-beta h1:BIhCgsXWyAIrpSoQR89w+b2ZRaKW0LGIGQTFbZzsnWE= github.com/confetti-framework/contract v0.2.0-beta/go.mod h1:4IIdDZfKW0xPshLjuIEesemD1Zd1FqFYt2kpkooB9g8= -github.com/confetti-framework/contract v0.2.0 h1:n3v7pzL1E4HQKQFjD512/r4kyqqN5GtbQbQP4ZZOtxA= -github.com/confetti-framework/contract v0.2.0/go.mod h1:4IIdDZfKW0xPshLjuIEesemD1Zd1FqFYt2kpkooB9g8= github.com/confetti-framework/errors v0.11.0-rc.1 h1:Docd/3JG4DwVAiz/KSXnO31fS4wv3rWFPLhgv9c9KVI= github.com/confetti-framework/errors v0.11.0-rc.1/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= github.com/confetti-framework/errors v0.11.0 h1:rIOBgIpw5zGb25q5Pfg2cIk4vMCQb+Gs/kdaEze7BHY= github.com/confetti-framework/errors v0.11.0/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= -github.com/confetti-framework/foundation v0.5.3 h1:ybTQbWHoSjiJbUNbBXLGGEq/nLmTeSclXW+Zjxr2d38= -github.com/confetti-framework/foundation v0.5.3/go.mod h1:2eEroQIB9J07NMMzACu+3IJvTHCoLZ0OIMzBZTkyM/o= github.com/confetti-framework/support v0.2.0-rc.1 h1:LSF3NDIVqPpRJEEj4r+4N1PoJfAvGxe0Hdr2sNHwJ60= github.com/confetti-framework/support v0.2.0-rc.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= github.com/confetti-framework/support v0.2.2 h1:T2Vb+yBPznWO5v8oXY1BkeiEeyfXzvdbJIHqGw9CByI= @@ -31,6 +33,10 @@ github.com/jedib0t/go-pretty/v6 v6.1.0 h1:NVS2PT3ZvzMb47DzS50cmsK6xkf8SSyLfroSSI github.com/jedib0t/go-pretty/v6 v6.1.0/go.mod h1:+nE9fyyHGil+PuISTCrp7avEdo6bqoMwqZnuiK2r2a0= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a h1:FaWFmfWdAUKbSCtOU2QjDaorUexogfaMgbipgYATUMU= +github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU= +github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213/go.mod h1:vNUNkEQ1e29fT/6vq2aBdFsgNPmy8qMdSay1npru+Sw= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -38,16 +44,41 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a h1:weJVJJRzAJBFRlAiJQROKQs8oC9vOxvm4rZmBBk0ONw= +github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= +github.com/manifoldco/promptui v0.8.0 h1:R95mMF+McvXZQ7j1g8ucVZE1gLP3Sv6j9vlF9kyRqQo= +github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEXGwov2nIKuGQ= +github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.10 h1:CoZ3S2P7pvtP45xOtBw+/mDL2z0RKI576gSkzRRpdGg= +github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= +github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= +github.com/motemen/go-quickfix v0.0.0-20200118031250-2a6e54e79a50 h1:LKXuJ8pSlacZRgcNFoN2OHehByrDxJesflgC/tH7aBM= +github.com/motemen/go-quickfix v0.0.0-20200118031250-2a6e54e79a50/go.mod h1:8l73QMUlCqIlm+7YUTMwzUS4UH4gQqigx7toFASjmu0= +github.com/peterh/liner v1.2.1 h1:O4BlKaq/LWu6VRWmol4ByWfzx6MfXc5Op5HETyIy5yg= +github.com/peterh/liner v1.2.1/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/schollz/progressbar/v3 v3.7.4 h1:G2HfclnGJR2HtTOmFkERQcRqo9J20asOFiuD6AnI5EQ= +github.com/schollz/progressbar/v3 v3.7.4/go.mod h1:1H8m5kMPW6q5fyjpDqtBHW1JT22mu2NwHQ1ApuCPh/8= github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= @@ -64,15 +95,57 @@ github.com/vigneshuvi/GoDateFormat v0.0.0-20190923034126-379ee8a8c45f h1:DvU+3Rl github.com/vigneshuvi/GoDateFormat v0.0.0-20190923034126-379ee8a8c45f/go.mod h1:190gFTWxRNREiiPal7zWZlNrwFSpv3BxDmOfgYqoYCY= github.com/vigneshuvi/GoDateFormat v0.0.0-20210204121036-67364dc23c79 h1:37VzBuFO88QQnCEu+G41v9IqgJNBXR+4vR9vGwVqJ00= github.com/vigneshuvi/GoDateFormat v0.0.0-20210204121036-67364dc23c79/go.mod h1:190gFTWxRNREiiPal7zWZlNrwFSpv3BxDmOfgYqoYCY= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0 h1:8pl+sMODzuvGJkmj2W4kZihvVb5mKm8pB/X44PIQHv8= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c h1:uHnKXcvx6SNkuwC+nrzxkJ+TpPwZOtumbhWrrOYN5YA= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46 h1:V066+OYJ66oTjnhm4Yrn7SXIwSCiDQJxpBxmvqb1N1c= +golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e h1:Z2uDrs8MyXUWJbwGc4V+nGjV4Ygo+oubBbWSVQw21/I= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= From d04bc955fb16f32aa96c14f6e455156c1c19e3bd Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Mon, 1 Mar 2021 01:05:30 +0100 Subject: [PATCH 10/13] confetti-framework/confetti#105 implement interaction with command --- go.mod | 8 ++++---- go.sum | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index c093f8c..9a83d69 100644 --- a/go.mod +++ b/go.mod @@ -3,11 +3,11 @@ module confetti-framework go 1.15 require ( - github.com/confetti-framework/contract v0.2.0 + github.com/confetti-framework/contract v0.2.1 github.com/confetti-framework/errors v0.11.0 - github.com/confetti-framework/foundation v0.5.3 - github.com/confetti-framework/support v0.2.2 + github.com/confetti-framework/foundation v0.5.4 + github.com/confetti-framework/support v0.2.3 github.com/confetti-framework/syslog v0.1.1 - github.com/confetti-framework/validation v0.1.0-rc.1 + github.com/confetti-framework/validation v0.1.0 golang.org/x/text v0.3.5 ) diff --git a/go.sum b/go.sum index 1ee212d..25ac080 100644 --- a/go.sum +++ b/go.sum @@ -4,24 +4,28 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5O github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/confetti-framework/baker v1.0.0 h1:CINSjqlwR2F0KrRQc83K53cr7fLjOlcjm+v7fV9TEI8= +github.com/confetti-framework/baker v1.0.0/go.mod h1:Ym6MeJ5WNtQGJFqdfMgdZXSBqFyZs2dc1Q52AjJvEBo= github.com/confetti-framework/contract v0.1.0-rc.1 h1:uNppEfy6lP4b4PKGdpW5Z7t40rKn27PnI86Yw72ZseA= github.com/confetti-framework/contract v0.1.0-rc.1/go.mod h1:8RAxkoUGEArjrzpBmypkSHd1RWr4/NRLr7Uaa4+cVJs= -github.com/confetti-framework/contract v0.2.0-beta h1:BIhCgsXWyAIrpSoQR89w+b2ZRaKW0LGIGQTFbZzsnWE= -github.com/confetti-framework/contract v0.2.0-beta/go.mod h1:4IIdDZfKW0xPshLjuIEesemD1Zd1FqFYt2kpkooB9g8= +github.com/confetti-framework/contract v0.2.1 h1:8mQWISbt1MpDcSOEygbY2SOrWaxgss7bMAOLbAg066U= +github.com/confetti-framework/contract v0.2.1/go.mod h1:Svbmzd7rTz6h7l7wM6QWcA6IJ44CejZ3Lc7phALp7Qs= github.com/confetti-framework/errors v0.11.0-rc.1 h1:Docd/3JG4DwVAiz/KSXnO31fS4wv3rWFPLhgv9c9KVI= github.com/confetti-framework/errors v0.11.0-rc.1/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= github.com/confetti-framework/errors v0.11.0 h1:rIOBgIpw5zGb25q5Pfg2cIk4vMCQb+Gs/kdaEze7BHY= github.com/confetti-framework/errors v0.11.0/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= +github.com/confetti-framework/foundation v0.5.4 h1:5RxL4nKepde+I49A/ixR3hRCupy8QKtfRnb2vbCDPig= +github.com/confetti-framework/foundation v0.5.4/go.mod h1:ET3fgrUBhQpFwinK92uNWuESXjYnd3zQ4SdSAfKQ3tw= github.com/confetti-framework/support v0.2.0-rc.1 h1:LSF3NDIVqPpRJEEj4r+4N1PoJfAvGxe0Hdr2sNHwJ60= github.com/confetti-framework/support v0.2.0-rc.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= -github.com/confetti-framework/support v0.2.2 h1:T2Vb+yBPznWO5v8oXY1BkeiEeyfXzvdbJIHqGw9CByI= -github.com/confetti-framework/support v0.2.2/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= +github.com/confetti-framework/support v0.2.3 h1:AOzZVtPeJlZBExW2SjYY3R3973ytve2FvmZoETqluN8= +github.com/confetti-framework/support v0.2.3/go.mod h1:HtyauB5vd5R+85mwosRpD0h6InS39HDJfKpkjXzdU3s= github.com/confetti-framework/syslog v0.1.0-rc h1:BqzyW2p9uSxYOL1MQFrMGAcsix7X5nW8bgHlf7SuZkM= github.com/confetti-framework/syslog v0.1.0-rc/go.mod h1:O6eT3y5cYDGQSVT6lrhScB5NKdylG0R304PmGiChm7Y= github.com/confetti-framework/syslog v0.1.1 h1:ZYea1UXjp/m1DajS6regPislq+kUhe6+/RpNzCaJ8js= github.com/confetti-framework/syslog v0.1.1/go.mod h1:O6eT3y5cYDGQSVT6lrhScB5NKdylG0R304PmGiChm7Y= -github.com/confetti-framework/validation v0.1.0-rc.1 h1:FAWrTYiyurHnO1oBeIcTH2mmdfN+aJCskDkWvMawt6A= -github.com/confetti-framework/validation v0.1.0-rc.1/go.mod h1:0Jh48odPow4IGtJNMZUDLrZb961BsrmojQqvjn4IlXI= +github.com/confetti-framework/validation v0.1.0 h1:QkB3B3sVZuXhmFheV2lM/DBdciUsLuot+JWd1CUT6Ys= +github.com/confetti-framework/validation v0.1.0/go.mod h1:0Jh48odPow4IGtJNMZUDLrZb961BsrmojQqvjn4IlXI= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -63,6 +67,8 @@ github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2Em github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/motemen/go-quickfix v0.0.0-20200118031250-2a6e54e79a50 h1:LKXuJ8pSlacZRgcNFoN2OHehByrDxJesflgC/tH7aBM= github.com/motemen/go-quickfix v0.0.0-20200118031250-2a6e54e79a50/go.mod h1:8l73QMUlCqIlm+7YUTMwzUS4UH4gQqigx7toFASjmu0= +github.com/motemen/gore v0.5.2 h1:MXcPj3myuuAToh1EaZbfYworggO7wEva6C49TOGqltA= +github.com/motemen/gore v0.5.2/go.mod h1:LLl0jKyT5KKWhFV5VwhcR1/D/obZk8NnZxRWZcHqZUg= github.com/peterh/liner v1.2.1 h1:O4BlKaq/LWu6VRWmol4ByWfzx6MfXc5Op5HETyIy5yg= github.com/peterh/liner v1.2.1/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= From b40634bed0e90e5954ecf2bda3484891c2e0be10 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Mon, 1 Mar 2021 22:28:58 +0100 Subject: [PATCH 11/13] confetti-framework/confetti#105 fix writers are nil --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9a83d69..9c6604f 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.15 require ( github.com/confetti-framework/contract v0.2.1 github.com/confetti-framework/errors v0.11.0 - github.com/confetti-framework/foundation v0.5.4 + github.com/confetti-framework/foundation v0.5.5 github.com/confetti-framework/support v0.2.3 github.com/confetti-framework/syslog v0.1.1 github.com/confetti-framework/validation v0.1.0 diff --git a/go.sum b/go.sum index 25ac080..b153590 100644 --- a/go.sum +++ b/go.sum @@ -14,8 +14,8 @@ github.com/confetti-framework/errors v0.11.0-rc.1 h1:Docd/3JG4DwVAiz/KSXnO31fS4w github.com/confetti-framework/errors v0.11.0-rc.1/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= github.com/confetti-framework/errors v0.11.0 h1:rIOBgIpw5zGb25q5Pfg2cIk4vMCQb+Gs/kdaEze7BHY= github.com/confetti-framework/errors v0.11.0/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= -github.com/confetti-framework/foundation v0.5.4 h1:5RxL4nKepde+I49A/ixR3hRCupy8QKtfRnb2vbCDPig= -github.com/confetti-framework/foundation v0.5.4/go.mod h1:ET3fgrUBhQpFwinK92uNWuESXjYnd3zQ4SdSAfKQ3tw= +github.com/confetti-framework/foundation v0.5.5 h1:aOKyl4Sa0jY6xZCxoPkseE1kHGKtWsXrAEcJktm0ME0= +github.com/confetti-framework/foundation v0.5.5/go.mod h1:ET3fgrUBhQpFwinK92uNWuESXjYnd3zQ4SdSAfKQ3tw= github.com/confetti-framework/support v0.2.0-rc.1 h1:LSF3NDIVqPpRJEEj4r+4N1PoJfAvGxe0Hdr2sNHwJ60= github.com/confetti-framework/support v0.2.0-rc.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= github.com/confetti-framework/support v0.2.3 h1:AOzZVtPeJlZBExW2SjYY3R3973ytve2FvmZoETqluN8= From 00a59b1a6f236926d0a10c0a5d80d99001292630 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Thu, 4 Mar 2021 18:39:50 +0100 Subject: [PATCH 12/13] confetti-framework/confetti#105 clean up providers --- app/http/decorator/register_providers.go | 3 +-- app/providers/console_service_provider.go | 21 --------------------- app/providers/provider_index.go | 4 ++-- 3 files changed, 3 insertions(+), 25 deletions(-) delete mode 100644 app/providers/console_service_provider.go diff --git a/app/http/decorator/register_providers.go b/app/http/decorator/register_providers.go index 290bedb..e09d578 100644 --- a/app/http/decorator/register_providers.go +++ b/app/http/decorator/register_providers.go @@ -1,13 +1,12 @@ package decorator import ( - "github.com/confetti-framework/contract/inter" "confetti-framework/app/providers" + "github.com/confetti-framework/contract/inter" ) type RegisterProviders struct{} -// Providers are located in config/providers/providers.go func (r RegisterProviders) Bootstrap(container inter.Container) inter.Container { for _, bootstrapper := range providers.Providers.RegisterProviders { container = bootstrapper.Register(container) diff --git a/app/providers/console_service_provider.go b/app/providers/console_service_provider.go deleted file mode 100644 index 092fb3d..0000000 --- a/app/providers/console_service_provider.go +++ /dev/null @@ -1,21 +0,0 @@ -package providers - -import ( - "flag" - "github.com/confetti-framework/contract/inter" - "github.com/confetti-framework/foundation/console/flag_type" - "reflect" -) - -type ConsoleServiceProvider struct{} - -func (c ConsoleServiceProvider) Register(container inter.Container) inter.Container { - // Flag types. - // These types are used to convert the flags from - // the commands to a specific value in a command field. - container.Singleton((*map[interface{}]flag.Value)(nil), map[interface{}]flag.Value{ - reflect.String: new(flag_type.String), - }) - - return container -} diff --git a/app/providers/provider_index.go b/app/providers/provider_index.go index eb11f68..6efb3af 100644 --- a/app/providers/provider_index.go +++ b/app/providers/provider_index.go @@ -1,9 +1,9 @@ package providers import ( + "confetti-framework/config" "github.com/confetti-framework/contract/inter" "github.com/confetti-framework/foundation/providers" - "confetti-framework/config" ) var Providers = struct { @@ -12,7 +12,7 @@ var Providers = struct { }{ /* |-------------------------------------------------------------------------- - | Autoloaded Register Service Providers + | Register Service Providers |-------------------------------------------------------------------------- | | The service providers listed here will be automatically loaded on the From 6ed9331cb2724bd0c4224e79f95b30856c0e9d72 Mon Sep 17 00:00:00 2001 From: Reindert Vetter Date: Thu, 4 Mar 2021 18:52:53 +0100 Subject: [PATCH 13/13] confetti-framework/confetti#105 move log command to confetti template --- app/console/kernel.go | 1 + go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/console/kernel.go b/app/console/kernel.go index 54dbcb0..0c5b7f5 100755 --- a/app/console/kernel.go +++ b/app/console/kernel.go @@ -20,6 +20,7 @@ func NewKernel(app inter.App) console.Kernel { App: app, Commands: []inter.Command{ commands.AppServe{}, + console.LogClear{}, commands.ExampleCommand{}, }, FlagProviders: []func() []flag.Getter{flagGetters}, diff --git a/go.mod b/go.mod index 9c6604f..41d21a8 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.15 require ( github.com/confetti-framework/contract v0.2.1 github.com/confetti-framework/errors v0.11.0 - github.com/confetti-framework/foundation v0.5.5 + github.com/confetti-framework/foundation v0.5.6 github.com/confetti-framework/support v0.2.3 github.com/confetti-framework/syslog v0.1.1 github.com/confetti-framework/validation v0.1.0 diff --git a/go.sum b/go.sum index b153590..daace51 100644 --- a/go.sum +++ b/go.sum @@ -14,8 +14,8 @@ github.com/confetti-framework/errors v0.11.0-rc.1 h1:Docd/3JG4DwVAiz/KSXnO31fS4w github.com/confetti-framework/errors v0.11.0-rc.1/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= github.com/confetti-framework/errors v0.11.0 h1:rIOBgIpw5zGb25q5Pfg2cIk4vMCQb+Gs/kdaEze7BHY= github.com/confetti-framework/errors v0.11.0/go.mod h1:a59waUvDS3t8nOeqI0yQDrhILEicAvlca7Kbeilsrao= -github.com/confetti-framework/foundation v0.5.5 h1:aOKyl4Sa0jY6xZCxoPkseE1kHGKtWsXrAEcJktm0ME0= -github.com/confetti-framework/foundation v0.5.5/go.mod h1:ET3fgrUBhQpFwinK92uNWuESXjYnd3zQ4SdSAfKQ3tw= +github.com/confetti-framework/foundation v0.5.6 h1:ZpBRqqGsxXR3kLA8emvkRyxrTO5HxFg3Nw6bJqHAlDQ= +github.com/confetti-framework/foundation v0.5.6/go.mod h1:ET3fgrUBhQpFwinK92uNWuESXjYnd3zQ4SdSAfKQ3tw= github.com/confetti-framework/support v0.2.0-rc.1 h1:LSF3NDIVqPpRJEEj4r+4N1PoJfAvGxe0Hdr2sNHwJ60= github.com/confetti-framework/support v0.2.0-rc.1/go.mod h1:uwOTcc+vAtkzr5GihkCzjv11YVI15UJMhfU2HLRCk/A= github.com/confetti-framework/support v0.2.3 h1:AOzZVtPeJlZBExW2SjYY3R3973ytve2FvmZoETqluN8=