Merge pull request #35 from owncloud/fix/command-parsing-hack

Update to urfave cli v2
This commit is contained in:
Thomas Boerger
2020-01-27 09:11:02 +01:00
committed by GitHub
7 changed files with 56 additions and 52 deletions
+2 -2
View File
@@ -185,8 +185,8 @@ If you prefer to configure the service with commandline flags you can see the av
--web-config-version
: Version, defaults to `0.1.0`
--web-config-apps
: Provide multiple apps, defaults to `""`. Accepts a string with comma separated values. Usage: `phoenix --web-config-apps "files, markdown-editor, pdf-viewer, draw-io"`
--web-config-app
: Provide multiple apps, defaults to `""`. Usage: `phoenix --web-config-app files --web-config-app pdf-viewer`
--oidc-metadata-url
: OpenID Connect metadata URL, defaults to `http://localhost:9130/.well-known/openid-configuration`
+1
View File
@@ -12,6 +12,7 @@ require (
github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/micro/cli v0.2.0
github.com/micro/cli/v2 v2.1.1
github.com/ogier/pflag v0.0.1 // indirect
github.com/oklog/run v1.0.0
github.com/openzipkin/zipkin-go v0.2.2
+5
View File
@@ -159,6 +159,7 @@ github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creack/pty v1.1.7 h1:6pwm8kMQKCmgUg0ZHTm5+/YvRK0s3THD/28+T6/kk4A=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
@@ -445,6 +446,8 @@ github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaR
github.com/mholt/certmagic v0.8.3/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ=
github.com/micro/cli v0.2.0 h1:ut3rV5JWqZjsXIa2MvGF+qMUP8DAUTvHX9Br5gO4afA=
github.com/micro/cli v0.2.0/go.mod h1:jRT9gmfVKWSS6pkKcXQ8YhUyj6bzwxK8Fp5b0Y7qNnk=
github.com/micro/cli/v2 v2.1.1 h1:uFw0SMIKmGuyHIm8lXns/NOn7V62bM5y7DnlxUM+BEQ=
github.com/micro/cli/v2 v2.1.1/go.mod h1:EguNh6DAoWKm9nmk+k/Rg0H3lQnDxqzu5x5srOtGtYg=
github.com/micro/go-micro v1.16.0/go.mod h1:A0F58bHLh2m0LAI9QyhvmbN8c1cxhAZo3cM6s+iDsrM=
github.com/micro/go-micro v1.17.1 h1:BhwC4Lnwr3hdci9T8kN5MEabKS+CT0QT0YH4hinTdNs=
github.com/micro/go-micro v1.17.1/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA=
@@ -603,6 +606,7 @@ github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo=
github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I=
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
@@ -614,6 +618,7 @@ github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdh
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
+3 -3
View File
@@ -4,14 +4,14 @@ import (
"fmt"
"net/http"
"github.com/micro/cli"
"github.com/micro/cli/v2"
"github.com/owncloud/ocis-phoenix/pkg/config"
"github.com/owncloud/ocis-phoenix/pkg/flagset"
)
// Health is the entrypoint for the health command.
func Health(cfg *config.Config) cli.Command {
return cli.Command{
func Health(cfg *config.Config) *cli.Command {
return &cli.Command{
Name: "health",
Usage: "Check health status",
Flags: flagset.HealthWithConfig(cfg),
+3 -3
View File
@@ -4,7 +4,7 @@ import (
"os"
"strings"
"github.com/micro/cli"
"github.com/micro/cli/v2"
"github.com/owncloud/ocis-phoenix/pkg/config"
"github.com/owncloud/ocis-phoenix/pkg/flagset"
"github.com/owncloud/ocis-phoenix/pkg/version"
@@ -22,7 +22,7 @@ func Execute() error {
Usage: "Serve Phoenix for oCIS",
Compiled: version.Compiled(),
Authors: []cli.Author{
Authors: []*cli.Author{
{
Name: "ownCloud GmbH",
Email: "support@owncloud.com",
@@ -73,7 +73,7 @@ func Execute() error {
return nil
},
Commands: []cli.Command{
Commands: []*cli.Command{
Server(cfg),
Health(cfg),
},
+5 -8
View File
@@ -10,7 +10,7 @@ import (
"contrib.go.opencensus.io/exporter/jaeger"
"contrib.go.opencensus.io/exporter/ocagent"
"contrib.go.opencensus.io/exporter/zipkin"
"github.com/micro/cli"
"github.com/micro/cli/v2"
"github.com/oklog/run"
openzipkin "github.com/openzipkin/zipkin-go"
zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http"
@@ -19,14 +19,13 @@ import (
"github.com/owncloud/ocis-phoenix/pkg/metrics"
"github.com/owncloud/ocis-phoenix/pkg/server/debug"
"github.com/owncloud/ocis-phoenix/pkg/server/http"
"github.com/owncloud/ocis-pkg/conversions"
"go.opencensus.io/stats/view"
"go.opencensus.io/trace"
)
// Server is the entrypoint for the server command.
func Server(cfg *config.Config) cli.Command {
return cli.Command{
func Server(cfg *config.Config) *cli.Command {
return &cli.Command{
Name: "server",
Usage: "Start integrated server",
Flags: flagset.ServerWithConfig(cfg),
@@ -35,15 +34,13 @@ func Server(cfg *config.Config) cli.Command {
cfg.HTTP.Root = strings.TrimSuffix(cfg.HTTP.Root, "/")
}
cfg.Phoenix.Config.Apps = c.StringSlice("web-config-app")
return nil
},
Action: func(c *cli.Context) error {
logger := NewLogger(cfg)
if c.String("web-config-apps") != "" {
cfg.Phoenix.Config.Apps = conversions.StringToSliceString(c.String("web-config-apps"), ",")
}
if cfg.Tracing.Enabled {
switch t := cfg.Tracing.Type; t {
case "agent":
+37 -36
View File
@@ -1,7 +1,7 @@
package flagset
import (
"github.com/micro/cli"
"github.com/micro/cli/v2"
"github.com/owncloud/ocis-phoenix/pkg/config"
)
@@ -12,26 +12,28 @@ func RootWithConfig(cfg *config.Config) []cli.Flag {
Name: "config-file",
Value: "",
Usage: "Path to config file",
EnvVar: "PHOENIX_CONFIG_FILE",
EnvVars: []string{"PHOENIX_CONFIG_FILE"},
Destination: &cfg.File,
},
&cli.StringFlag{
Name: "log-level",
Value: "info",
Usage: "Set logging level",
EnvVar: "PHOENIX_LOG_LEVEL",
EnvVars: []string{"PHOENIX_LOG_LEVEL"},
Destination: &cfg.Log.Level,
},
&cli.BoolTFlag{
&cli.BoolFlag{
Name: "log-pretty",
Value: true,
Usage: "Enable pretty logging",
EnvVar: "PHOENIX_LOG_PRETTY",
EnvVars: []string{"PHOENIX_LOG_PRETTY"},
Destination: &cfg.Log.Pretty,
},
&cli.BoolTFlag{
&cli.BoolFlag{
Name: "log-color",
Value: true,
Usage: "Enable colored logging",
EnvVar: "PHOENIX_LOG_COLOR",
EnvVars: []string{"PHOENIX_LOG_COLOR"},
Destination: &cfg.Log.Color,
},
}
@@ -44,7 +46,7 @@ func HealthWithConfig(cfg *config.Config) []cli.Flag {
Name: "debug-addr",
Value: "0.0.0.0:9104",
Usage: "Address to debug endpoint",
EnvVar: "PHOENIX_DEBUG_ADDR",
EnvVars: []string{"PHOENIX_DEBUG_ADDR"},
Destination: &cfg.Debug.Addr,
},
}
@@ -56,159 +58,158 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag {
&cli.BoolFlag{
Name: "tracing-enabled",
Usage: "Enable sending traces",
EnvVar: "PHOENIX_TRACING_ENABLED",
EnvVars: []string{"PHOENIX_TRACING_ENABLED"},
Destination: &cfg.Tracing.Enabled,
},
&cli.StringFlag{
Name: "tracing-type",
Value: "jaeger",
Usage: "Tracing backend type",
EnvVar: "PHOENIX_TRACING_TYPE",
EnvVars: []string{"PHOENIX_TRACING_TYPE"},
Destination: &cfg.Tracing.Type,
},
&cli.StringFlag{
Name: "tracing-endpoint",
Value: "",
Usage: "Endpoint for the agent",
EnvVar: "PHOENIX_TRACING_ENDPOINT",
EnvVars: []string{"PHOENIX_TRACING_ENDPOINT"},
Destination: &cfg.Tracing.Endpoint,
},
&cli.StringFlag{
Name: "tracing-collector",
Value: "",
Usage: "Endpoint for the collector",
EnvVar: "PHOENIX_TRACING_COLLECTOR",
EnvVars: []string{"PHOENIX_TRACING_COLLECTOR"},
Destination: &cfg.Tracing.Collector,
},
&cli.StringFlag{
Name: "tracing-service",
Value: "phoenix",
Usage: "Service name for tracing",
EnvVar: "PHOENIX_TRACING_SERVICE",
EnvVars: []string{"PHOENIX_TRACING_SERVICE"},
Destination: &cfg.Tracing.Service,
},
&cli.StringFlag{
Name: "debug-addr",
Value: "0.0.0.0:9104",
Usage: "Address to bind debug server",
EnvVar: "PHOENIX_DEBUG_ADDR",
EnvVars: []string{"PHOENIX_DEBUG_ADDR"},
Destination: &cfg.Debug.Addr,
},
&cli.StringFlag{
Name: "debug-token",
Value: "",
Usage: "Token to grant metrics access",
EnvVar: "PHOENIX_DEBUG_TOKEN",
EnvVars: []string{"PHOENIX_DEBUG_TOKEN"},
Destination: &cfg.Debug.Token,
},
&cli.BoolFlag{
Name: "debug-pprof",
Usage: "Enable pprof debugging",
EnvVar: "PHOENIX_DEBUG_PPROF",
EnvVars: []string{"PHOENIX_DEBUG_PPROF"},
Destination: &cfg.Debug.Pprof,
},
&cli.BoolFlag{
Name: "debug-zpages",
Usage: "Enable zpages debugging",
EnvVar: "PHOENIX_DEBUG_ZPAGES",
EnvVars: []string{"PHOENIX_DEBUG_ZPAGES"},
Destination: &cfg.Debug.Zpages,
},
&cli.StringFlag{
Name: "http-addr",
Value: "0.0.0.0:9100",
Usage: "Address to bind http server",
EnvVar: "PHOENIX_HTTP_ADDR",
EnvVars: []string{"PHOENIX_HTTP_ADDR"},
Destination: &cfg.HTTP.Addr,
},
&cli.StringFlag{
Name: "http-root",
Value: "/",
Usage: "Root path of http server",
EnvVar: "PHOENIX_HTTP_ROOT",
EnvVars: []string{"PHOENIX_HTTP_ROOT"},
Destination: &cfg.HTTP.Root,
},
&cli.StringFlag{
Name: "http-namespace",
Value: "com.owncloud.web",
Usage: "Set the base namespace for the http namespace",
EnvVar: "PHOENIX_NAMESPACE",
EnvVars: []string{"PHOENIX_NAMESPACE"},
Destination: &cfg.HTTP.Namespace,
},
&cli.StringFlag{
Name: "asset-path",
Value: "",
Usage: "Path to custom assets",
EnvVar: "PHOENIX_ASSET_PATH",
EnvVars: []string{"PHOENIX_ASSET_PATH"},
Destination: &cfg.Asset.Path,
},
&cli.StringFlag{
Name: "web-config",
Value: "",
Usage: "Path to phoenix config",
EnvVar: "PHOENIX_WEB_CONFIG",
EnvVars: []string{"PHOENIX_WEB_CONFIG"},
Destination: &cfg.Phoenix.Path,
},
&cli.StringFlag{
Name: "web-config-server",
Value: "http://localhost:9140",
Usage: "Server URL",
EnvVar: "PHOENIX_WEB_CONFIG_SERVER",
EnvVars: []string{"PHOENIX_WEB_CONFIG_SERVER"},
Destination: &cfg.Phoenix.Config.Server,
},
&cli.StringFlag{
Name: "web-config-theme",
Value: "owncloud",
Usage: "Theme",
EnvVar: "PHOENIX_WEB_CONFIG_THEME",
EnvVars: []string{"PHOENIX_WEB_CONFIG_THEME"},
Destination: &cfg.Phoenix.Config.Theme,
},
&cli.StringFlag{
Name: "web-config-version",
Value: "0.1.0",
Usage: "Version",
EnvVar: "PHOENIX_WEB_CONFIG_VERSION",
EnvVars: []string{"PHOENIX_WEB_CONFIG_VERSION"},
Destination: &cfg.Phoenix.Config.Version,
},
&cli.StringFlag{
Name: "web-config-apps",
Value: "files,draw-io,pdf-viewer,markdown-editor,media-viewer",
Usage: `String with comma separated values. --web-config-apps "pdf-viewer, files, draw-io"`,
EnvVar: "PHOENIX_WEB_CONFIG_APPS",
&cli.StringSliceFlag{
Name: "web-config-app",
Value: cli.NewStringSlice("files", "draw-io", "pdf-viewer", "markdown-editor", "media-viewer"),
Usage: `--web-config-app files [--web-config-app draw-io]`,
EnvVars: []string{"PHOENIX_WEB_CONFIG_APPS"},
},
// TODO EXTERNAL APPS?
&cli.StringFlag{
Name: "oidc-metadata-url",
Value: "http://localhost:9140/.well-known/openid-configuration",
Usage: "OpenID Connect metadata URL",
EnvVar: "PHOENIX_OIDC_METADATA_URL",
EnvVars: []string{"PHOENIX_OIDC_METADATA_URL"},
Destination: &cfg.Phoenix.Config.OpenIDConnect.MetadataURL,
},
&cli.StringFlag{
Name: "oidc-authority",
Value: "http://localhost:9140",
Usage: "OpenID Connect authority", // TODO rename to Issuer
EnvVar: "PHOENIX_OIDC_AUTHORITY",
EnvVars: []string{"PHOENIX_OIDC_AUTHORITY"},
Destination: &cfg.Phoenix.Config.OpenIDConnect.Authority,
},
&cli.StringFlag{
Name: "oidc-client-id",
Value: "phoenix",
Usage: "OpenID Connect client ID",
EnvVar: "PHOENIX_OIDC_CLIENT_ID",
EnvVars: []string{"PHOENIX_OIDC_CLIENT_ID"},
Destination: &cfg.Phoenix.Config.OpenIDConnect.ClientID,
},
&cli.StringFlag{
Name: "oidc-response-type",
Value: "code",
Usage: "OpenID Connect response type",
EnvVar: "PHOENIX_OIDC_RESPONSE_TYPE",
EnvVars: []string{"PHOENIX_OIDC_RESPONSE_TYPE"},
Destination: &cfg.Phoenix.Config.OpenIDConnect.ResponseType,
},
&cli.StringFlag{
Name: "oidc-scope",
Value: "openid profile email",
Usage: "OpenID Connect scope",
EnvVar: "PHOENIX_OIDC_SCOPE",
EnvVars: []string{"PHOENIX_OIDC_SCOPE"},
Destination: &cfg.Phoenix.Config.OpenIDConnect.Scope,
},
}