This is an automated email from the ASF dual-hosted git repository. bzp2010 pushed a commit to branch feat-split-cmd-pkg in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git
commit dc73a17b9b9b39ec69bdcfc1dd4333396965ab92 Author: bzp2010 <[email protected]> AuthorDate: Fri Jun 4 13:35:31 2021 +0800 feat: split cmd package code --- api/build.sh | 4 +- api/cmd/{manager/main.go => install.go} | 24 ++++-- api/cmd/{manager/main.go => remove.go} | 22 +++-- api/cmd/{managerapi.go => root.go} | 137 ++++++------------------------ api/cmd/service.go | 3 +- api/cmd/{manager/main.go => start.go} | 22 +++-- api/cmd/{manager/main.go => status.go} | 22 +++-- api/cmd/{manager/main_test.go => stop.go} | 56 +++++------- api/cmd/{manager/main.go => version.go} | 31 +++++-- api/go.mod | 7 +- api/go.sum | 28 +----- api/{cmd/manager => }/main.go | 7 +- api/{cmd/manager => }/main_test.go | 0 13 files changed, 146 insertions(+), 217 deletions(-) diff --git a/api/build.sh b/api/build.sh index 6cd249a..f160111 100755 --- a/api/build.sh +++ b/api/build.sh @@ -24,7 +24,7 @@ GOLDFLAGS="-X github.com/apisix/manager-api/internal/utils.version=${VERSION} -X # Enter dry-run mode if [ "$1" == "--dry-run" ]; then - cd ./api && go run -ldflags "${GOLDFLAGS}" ./cmd/manager + cd ./api && go run -ldflags "${GOLDFLAGS}" ./main.go exit 0 fi @@ -42,7 +42,7 @@ if [[ ! -f "dag-to-lua-1.1/lib/dag-to-lua.lua" ]]; then fi # build -cd ./api && go build -o ../output/manager-api -ldflags "${GOLDFLAGS}" ./cmd/manager && cd .. +cd ./api && go build -o ../output/manager-api -ldflags "${GOLDFLAGS}" ./main.go && cd .. cp ./api/conf/schema.json ./output/conf/schema.json cp ./api/conf/conf.yaml ./output/conf/conf.yaml diff --git a/api/cmd/manager/main.go b/api/cmd/install.go similarity index 68% copy from api/cmd/manager/main.go copy to api/cmd/install.go index b4f260a..5604ea7 100644 --- a/api/cmd/manager/main.go +++ b/api/cmd/install.go @@ -14,17 +14,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package main +package cmd import ( "fmt" - "os" - "github.com/apisix/manager-api/cmd" + "github.com/spf13/cobra" ) -func main() { - if err := cmd.NewManagerAPICommand().Execute(); err != nil { - fmt.Fprintln(os.Stderr, err.Error()) - } +var service *Service + +var installCmd = &cobra.Command{ + Use: "install", + Short: "re-install Apache APISIX Dashboard service", + RunE: func(cmd *cobra.Command, args []string) error { + serviceState.installService = true + status, err := service.manageService() + fmt.Println(status) + return err + }, +} + +func init() { + rootCmd.AddCommand(installCmd) } diff --git a/api/cmd/manager/main.go b/api/cmd/remove.go similarity index 69% copy from api/cmd/manager/main.go copy to api/cmd/remove.go index b4f260a..4391370 100644 --- a/api/cmd/manager/main.go +++ b/api/cmd/remove.go @@ -14,17 +14,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package main +package cmd import ( "fmt" - "os" - "github.com/apisix/manager-api/cmd" + "github.com/spf13/cobra" ) -func main() { - if err := cmd.NewManagerAPICommand().Execute(); err != nil { - fmt.Fprintln(os.Stderr, err.Error()) - } +var removeCmd = &cobra.Command{ + Use: "remove", + Short: "remove Apache APISIX Dashboard service", + RunE: func(cmd *cobra.Command, args []string) error { + serviceState.removeService = true + status, err := service.manageService() + fmt.Println(status) + return err + }, +} + +func init() { + rootCmd.AddCommand(removeCmd) } diff --git a/api/cmd/managerapi.go b/api/cmd/root.go similarity index 64% rename from api/cmd/managerapi.go rename to api/cmd/root.go index a3543b1..bd89146 100644 --- a/api/cmd/managerapi.go +++ b/api/cmd/root.go @@ -42,30 +42,19 @@ import ( ) var ( - showVersion bool - Version string - GitHash string - service *Service + configFile string ) -func printInfo() { - fmt.Fprint(os.Stdout, "The manager-api is running successfully!\n\n") - printVersion() - fmt.Fprintf(os.Stdout, "%-8s: %s:%d\n", "Listen", conf.ServerHost, conf.ServerPort) - if conf.SSLCert != "" && conf.SSLKey != "" { - fmt.Fprintf(os.Stdout, "%-8s: %s:%d\n", "HTTPS Listen", conf.SSLHost, conf.SSLPort) - } - fmt.Fprintf(os.Stdout, "%-8s: %s\n", "Loglevel", conf.ErrorLogLevel) - fmt.Fprintf(os.Stdout, "%-8s: %s\n\n", "Logfile", conf.ErrorLogPath) -} - -func printVersion() { - fmt.Fprintf(os.Stdout, "%-8s: %s\n", "Version", Version) - fmt.Fprintf(os.Stdout, "%-8s: %s\n", "GitHash", GitHash) +var rootCmd = &cobra.Command{ + Use: "manager-api [flags]", + Short: "Apache APISIX Manager API", + RunE: func(cmd *cobra.Command, args []string) error { + err := manageAPI() + return err + }, } -// NewManagerAPICommand creates the manager-api command. -func NewManagerAPICommand() *cobra.Command { +func init() { cobra.OnInitialize(func() { var err error service, err = createService() @@ -74,25 +63,14 @@ func NewManagerAPICommand() *cobra.Command { } }) - cmd := &cobra.Command{ - Use: "manager-api [flags]", - Short: "APISIX Manager API", - RunE: func(cmd *cobra.Command, args []string) error { - GitHash, Version = utils.GetHashAndVersion() - if showVersion { - printVersion() - os.Exit(0) - } - err := manageAPI() - return err - }, - } - - cmd.PersistentFlags().StringVarP(&conf.WorkDir, "work-dir", "p", ".", "current work directory") - cmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "show manager-api version") + rootCmd.PersistentFlags().StringVarP(&configFile, "config", "c", "./conf/conf.yml", "config file") + rootCmd.PersistentFlags().StringVarP(&conf.WorkDir, "work-dir", "p", ".", "current work directory") +} - cmd.AddCommand(newStartCommand(), newInstallCommand(), newStatusCommand(), newStopCommand(), newRemoveCommand()) - return cmd +func Execute() { + if err := rootCmd.Execute(); err != nil { + _, _ = fmt.Fprintln(os.Stderr, err.Error()) + } } func manageAPI() error { @@ -211,80 +189,13 @@ func shutdownServer(server *http.Server) { } } -func newStartCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "start", - Short: "start Apache APISIX Dashboard service", - RunE: func(cmd *cobra.Command, args []string) error { - serviceState.startService = true - status, err := service.manageService() - fmt.Println(status) - return err - }, - } - return cmd -} - -func newInstallCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "install", - Short: "re-install Apache APISIX Dashboard service", - RunE: func(cmd *cobra.Command, args []string) error { - serviceState.installService = true - status, err := service.manageService() - fmt.Println(status) - return err - }, - } - return cmd -} - -func newStatusCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "status", - Short: "inspect the status of Apache APISIX Dashboard service", - RunE: func(cmd *cobra.Command, args []string) error { - serviceState.status = true - status, err := service.manageService() - fmt.Println(status) - return err - }, - } - return cmd -} - -func newStopCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "stop", - Short: "stop Apache APISIX Dashboard service/program", - Run: func(cmd *cobra.Command, args []string) { - pid, err := utils.ReadPID(conf.PIDPath) - if err != nil { - if syscall.ENOENT.Error() != err.Error() { - fmt.Fprintf(os.Stderr, "failed to get manager-api pid: %s\n", err) - } else { - fmt.Fprintf(os.Stderr, "pid path %s not found, is manager-api running?\n", conf.PIDPath) - } - return - } - if err := syscall.Kill(pid, syscall.SIGINT); err != nil { - fmt.Fprintf(os.Stderr, "failed to kill manager-api: %s", err) - } - }, - } - return cmd -} - -func newRemoveCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "remove", - Short: "remove Apache APISIX Dashboard service", - RunE: func(cmd *cobra.Command, args []string) error { - serviceState.removeService = true - status, err := service.manageService() - fmt.Println(status) - return err - }, +func printInfo() { + fmt.Fprint(os.Stdout, "The manager-api is running successfully!\n\n") + printVersion() + fmt.Fprintf(os.Stdout, "%-8s: %s:%d\n", "Listen", conf.ServerHost, conf.ServerPort) + if conf.SSLCert != "" && conf.SSLKey != "" { + fmt.Fprintf(os.Stdout, "%-8s: %s:%d\n", "HTTPS Listen", conf.SSLHost, conf.SSLPort) } - return cmd + fmt.Fprintf(os.Stdout, "%-8s: %s\n", "Loglevel", conf.ErrorLogLevel) + fmt.Fprintf(os.Stdout, "%-8s: %s\n\n", "Logfile", conf.ErrorLogPath) } diff --git a/api/cmd/service.go b/api/cmd/service.go index d02d2b2..af187e3 100644 --- a/api/cmd/service.go +++ b/api/cmd/service.go @@ -20,8 +20,9 @@ import ( "os" "runtime" - "github.com/apisix/manager-api/internal/conf" "github.com/takama/daemon" + + "github.com/apisix/manager-api/internal/conf" ) type Service struct { diff --git a/api/cmd/manager/main.go b/api/cmd/start.go similarity index 70% copy from api/cmd/manager/main.go copy to api/cmd/start.go index b4f260a..7bae655 100644 --- a/api/cmd/manager/main.go +++ b/api/cmd/start.go @@ -14,17 +14,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package main +package cmd import ( "fmt" - "os" - "github.com/apisix/manager-api/cmd" + "github.com/spf13/cobra" ) -func main() { - if err := cmd.NewManagerAPICommand().Execute(); err != nil { - fmt.Fprintln(os.Stderr, err.Error()) - } +var startCmd = &cobra.Command{ + Use: "start", + Short: "start Apache APISIX Dashboard service", + RunE: func(cmd *cobra.Command, args []string) error { + serviceState.startService = true + status, err := service.manageService() + fmt.Println(status) + return err + }, +} + +func init() { + rootCmd.AddCommand(startCmd) } diff --git a/api/cmd/manager/main.go b/api/cmd/status.go similarity index 69% copy from api/cmd/manager/main.go copy to api/cmd/status.go index b4f260a..7d64613 100644 --- a/api/cmd/manager/main.go +++ b/api/cmd/status.go @@ -14,17 +14,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package main +package cmd import ( "fmt" - "os" - "github.com/apisix/manager-api/cmd" + "github.com/spf13/cobra" ) -func main() { - if err := cmd.NewManagerAPICommand().Execute(); err != nil { - fmt.Fprintln(os.Stderr, err.Error()) - } +var statusCmd = &cobra.Command{ + Use: "status", + Short: "inspect the status of Apache APISIX Dashboard service", + RunE: func(cmd *cobra.Command, args []string) error { + serviceState.status = true + status, err := service.manageService() + fmt.Println(status) + return err + }, +} + +func init() { + rootCmd.AddCommand(statusCmd) } diff --git a/api/cmd/manager/main_test.go b/api/cmd/stop.go similarity index 55% copy from api/cmd/manager/main_test.go copy to api/cmd/stop.go index f891490..25df52d 100644 --- a/api/cmd/manager/main_test.go +++ b/api/cmd/stop.go @@ -14,43 +14,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package main +package cmd import ( - "os" - "os/signal" - "strings" - "syscall" - "testing" + "github.com/spf13/cobra" ) -func TestMainWrapper(t *testing.T) { - if os.Getenv("ENV") == "test" { - t.Skip("skipping build binary when execute unit test") - } - - var ( - args []string - ) - for _, arg := range os.Args { - switch { - case strings.HasPrefix(arg, "-test"): - default: - args = append(args, arg) +var stopCmd = &cobra.Command{ + Use: "stop", + Short: "stop Apache APISIX Dashboard service/program", + Run: func(cmd *cobra.Command, args []string) { + /*pid, err := utils.ReadPID(conf.PIDPath) + if err != nil { + if syscall.ENOENT.Error() != err.Error() { + fmt.Fprintf(os.Stderr, "failed to get manager-api pid: %s\n", err) + } else { + fmt.Fprintf(os.Stderr, "pid path %s not found, is manager-api running?\n", conf.PIDPath) + } + return } - } - waitCh := make(chan int, 1) - os.Args = args - go func() { - main() - close(waitCh) - }() - signalCh := make(chan os.Signal, 1) - signal.Notify(signalCh, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGHUP) - select { - case <-signalCh: - return - case <-waitCh: - return - } + if err := syscall.Kill(pid, syscall.SIGINT); err != nil { + fmt.Fprintf(os.Stderr, "failed to kill manager-api: %s", err) + }*/ + }, +} + +func init() { + rootCmd.AddCommand(stopCmd) } diff --git a/api/cmd/manager/main.go b/api/cmd/version.go similarity index 61% copy from api/cmd/manager/main.go copy to api/cmd/version.go index b4f260a..1e12456 100644 --- a/api/cmd/manager/main.go +++ b/api/cmd/version.go @@ -14,17 +14,36 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package main +package cmd import ( "fmt" "os" - "github.com/apisix/manager-api/cmd" + "github.com/spf13/cobra" + + "github.com/apisix/manager-api/internal/utils" +) + +var ( + Version string + GitHash string ) -func main() { - if err := cmd.NewManagerAPICommand().Execute(); err != nil { - fmt.Fprintln(os.Stderr, err.Error()) - } +var versionCmd = &cobra.Command{ + Use: "version", + Short: "show manager-api version", + Run: func(cmd *cobra.Command, args []string) { + printVersion() + }, +} + +func init() { + rootCmd.AddCommand(versionCmd) +} + +func printVersion() { + GitHash, Version = utils.GetHashAndVersion() + fmt.Fprintf(os.Stdout, "%-8s: %s\n", "Version", Version) + fmt.Fprintf(os.Stdout, "%-8s: %s\n", "GitHash", GitHash) } diff --git a/api/go.mod b/api/go.mod index 62ea026..2091bd3 100644 --- a/api/go.mod +++ b/api/go.mod @@ -1,13 +1,13 @@ module github.com/apisix/manager-api -go 1.13 +go 1.16 replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 replace github.com/coreos/bbolt => go.etcd.io/bbolt v1.3.5 require ( - github.com/coreos/bbolt v0.0.0-00010101000000-000000000000 // indirect + github.com/coreos/bbolt v1.3.2 // indirect github.com/coreos/etcd v3.3.25+incompatible // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect @@ -17,12 +17,12 @@ require ( github.com/evanphx/json-patch/v5 v5.1.0 github.com/getkin/kin-openapi v0.33.0 github.com/gin-contrib/pprof v1.3.0 - github.com/gin-contrib/sessions v0.0.3 github.com/gin-contrib/static v0.0.0-20200916080430-d45d9a37d28e github.com/gin-gonic/gin v1.6.3 github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect github.com/google/uuid v1.1.2 // indirect + github.com/gorilla/websocket v1.4.2 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.2.2 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/jonboulle/clockwork v0.2.2 // indirect @@ -33,6 +33,7 @@ require ( github.com/sirupsen/logrus v1.7.0 // indirect github.com/sony/sonyflake v1.0.0 github.com/spf13/cobra v0.0.3 + github.com/spf13/pflag v1.0.3 // indirect github.com/stretchr/testify v1.6.1 github.com/takama/daemon v1.0.0 github.com/tidwall/gjson v1.6.7 diff --git a/api/go.sum b/api/go.sum index cdf98d0..1580eef 100644 --- a/api/go.sum +++ b/api/go.sum @@ -28,9 +28,6 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff/go.mod h1:+RTT1BOk5P97fT2CiHkbFQwkK3mjsFAP6zCYV2aXtjw= -github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= -github.com/bradleypeabody/gorilla-sessions-memcache v0.0.0-20181103040241-659414f458e1/go.mod h1:dkChI7Tbtx7H1Tj7TqGSZMOeGpMP5gLHtjroHd4agiI= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -85,8 +82,6 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/pprof v1.3.0 h1:G9eK6HnbkSqDZBYbzG4wrjCsA4e+cvYAHUZw6W+W9K0= github.com/gin-contrib/pprof v1.3.0/go.mod h1:waMjT1H9b179t3CxuG1cV3DHpga6ybizwfBaM5OXaB0= -github.com/gin-contrib/sessions v0.0.3 h1:PoBXki+44XdJdlgDqDrY5nDVe3Wk7wDV/UCOuLP6fBI= -github.com/gin-contrib/sessions v0.0.3/go.mod h1:8C/J6cad3Il1mWYYgtw0w+hqasmpvy25mPkXdOgeB9I= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-contrib/static v0.0.0-20200916080430-d45d9a37d28e h1:8bZpGwoPxkaivQPrAbWl+7zjjUcbFUnYp7yQcx2r2N0= @@ -95,7 +90,6 @@ github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmC github.com/gin-gonic/gin v1.6.2/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -146,7 +140,6 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -162,17 +155,12 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= -github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= -github.com/gorilla/sessions v1.1.3 h1:uXoZdcdA5XdXF3QzuSlheVRUvjl+1rKY7zBXL68L9RU= -github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c h1:Lh2aW+HnU2Nbe1gqD9SOJLJxW1jBMmQOktN2acDyJk8= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2 h1:FlFbCRLd5Jr4iYXZufAvgWN6Ao0JrI5chLINnUXDDr0= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= @@ -221,7 +209,6 @@ github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kidstuff/mongostore v0.0.0-20181113001930-e650cd85ee4b/go.mod h1:g2nVr8KZVXJSS97Jo8pJ0jgq29P6H7dG0oplUA86MQw= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -250,7 +237,6 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/memcachier/mc v2.0.1+incompatible/go.mod h1:7bkvFE61leUBvXz+yxsOnGBQSZpBSPIMUQSmmSHvuXc= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -330,7 +316,6 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/quasoft/memstore v0.0.0-20180925164028-84a050167438/go.mod h1:wTPjTepVu7uJBYgZ0SdWHQlIas582j6cn2jgk4DDdlg= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -342,7 +327,6 @@ github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0 github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shiningrush/droplet v0.2.4 h1:OW4Pp+dXs9O61QKTiYSRWCdQeOyzO1n9h+i2PDJ5DK0= github.com/shiningrush/droplet v0.2.4/go.mod h1:akW2vIeamvMD6zj6wIBfzYn6StGXBxwlW3gA+hcHu5M= github.com/shiningrush/droplet v0.2.6-0.20210127040147-53817015cd1b h1:kAS+hyJuHUm/lAN4xbKY4/QHbRse95lcjxcIZwSJEvM= github.com/shiningrush/droplet v0.2.6-0.20210127040147-53817015cd1b/go.mod h1:akW2vIeamvMD6zj6wIBfzYn6StGXBxwlW3gA+hcHu5M= @@ -363,8 +347,9 @@ github.com/sony/sonyflake v1.0.0 h1:MpU6Ro7tfXwgn2l5eluf9xQvQJDROTBImNCfRXn/YeM= github.com/sony/sonyflake v1.0.0/go.mod h1:Jv3cfhf/UFtolOTTRd3q4Nl6ENqM+KfyZ5PseKfZGF4= github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/pflag v1.0.1 h1:aCvUg6QPl3ibpQUxyLkrEkCHtPqYJL4x9AuhqVqFis4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -406,7 +391,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da h1:NimzV1aGyq29m5ukMK0AMWEhFaL/lrEOaephfuoiARg= github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= @@ -452,7 +436,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b h1:GgiSbuUyC0BlbUmHQBgFqu32eiRR/CEYdjOjOd4zE6Y= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= @@ -475,7 +458,6 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -521,7 +503,6 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211 h1:9UQO31fZ+0aKQOFldThf7BKPMJTiBfWycGh/u3UoO88= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 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 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -541,7 +522,6 @@ golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa h1:5E4dL8+NgFOgjwbTKz+OOEGGhP+ectTmF842l6KjupQ= golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= diff --git a/api/cmd/manager/main.go b/api/main.go similarity index 88% rename from api/cmd/manager/main.go rename to api/main.go index b4f260a..6fc7013 100644 --- a/api/cmd/manager/main.go +++ b/api/main.go @@ -17,14 +17,9 @@ package main import ( - "fmt" - "os" - "github.com/apisix/manager-api/cmd" ) func main() { - if err := cmd.NewManagerAPICommand().Execute(); err != nil { - fmt.Fprintln(os.Stderr, err.Error()) - } + cmd.Execute() } diff --git a/api/cmd/manager/main_test.go b/api/main_test.go similarity index 100% rename from api/cmd/manager/main_test.go rename to api/main_test.go
