Documentation ¶
Overview ¶
Package cmd implements commands for running pydio services
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( FilterStartTags []string FilterStartExclude []string )
View Source
var (
IsFork bool
)
View Source
var RootCmd = &cobra.Command{ Use: os.Args[0], Short: "Secure File Sharing for business", Long: `Thank you for using Pydio Cells. Comprehensive sync & share solution for your collaborators. Open-source software deployed on-premise or in a private cloud. ### Installation For the very first run, use '` + os.Args[0] + ` install' to load browser-based or command-line based installation wizard. Services will start at the end of the installation. ### Run Run '` + os.Args[0] + ` start' to load all services. ### Logs level By default, logs are outputted in console format at the Info level. You can set the --log flag or set the PYDIO_LOGS_LEVEL environment variable to one of the following values: - debug, info, error : logs are written in console format with the according level - production : logs are written in json format, for usage with a log aggregator tool. ### Services Discovery Micro services need a registry mechanism to discover each other. By default, Pydio Cells ships with Nats.io and Consul.io implementations. You don't need to install any dependency. By default, Cells uses the NATS implementation. You can switch to consul by using the flag --registry=consul. `, PreRun: func(cmd *cobra.Command, args []string) {}, PersistentPreRun: func(cmd *cobra.Command, args []string) { if cmd.Long == StartCmd.Long { common.LogCaptureStdOut = true } handleSignals() for _, v := range common.ServicesDiscovery { if v != viper.Get("registry").(string) { FilterStartExclude = append(FilterStartExclude, v) } } registry.Default.Filter(func(s registry.Service) bool { for _, exclude := range FilterStartExclude { re := regexp.MustCompile(exclude) if strings.HasPrefix(s.Name(), exclude) || re.MatchString(s.Name()) { return true } } return false }) initServices() if s, err := registry.Default.ListServices(); err != nil { cmd.Print("Could not retrieve list of services") os.Exit(0) } else { allServices = s } }, Run: func(cmd *cobra.Command, args []string) { cmd.Help() }, }
RootCmd represents the base command when called without any subcommands
View Source
var SslCmd = &cobra.Command{ Use: "ssl", Short: "Manage SSL configuration", Run: func(cmd *cobra.Command, args []string) { cmd.Help() }, }
SslCmd represents the ssl command
View Source
var SslModeCmd = &cobra.Command{ Use: "mode", Short: "Manage HTTPS support on proxy", Long: ` This command lets you enable/disabled SSL on application main access point. Three modes are currently supported : - TLS mode : provide the paths to certificate and key (as you would on an apache server) - Self-Signed : a self-signed certificate will be generated at each application start - Disabled : application will be served on HTTP `, Run: func(cmd *cobra.Command, args []string) { enabled, e := promptSslMode() if e != nil { log.Fatal(e) } extUrl, _ := url.Parse(config.Get("defaults", "url").String("")) intUrl, _ := url.Parse(config.Get("defaults", "urlInternal").String("")) if enabled { extUrl.Scheme = "https" intUrl.Scheme = "https" } else { extUrl.Scheme = "http" intUrl.Scheme = "http" } config.Set(extUrl.String(), "defaults", "url") config.Set(intUrl.String(), "defaults", "urlInternal") if e := config.Save("cli", "Update SSL mode"); e != nil { cmd.Println("Error while saving config: " + e.Error()) } var frontWrite error if fConf, e := config.FrontBootstrapFromConfig(extUrl.String()); e == nil { root := config.Get("defaults", "frontRoot").String("") if root != "" { frontWrite = config.FrontWriteBootstrap(root, fConf) config.FrontClearCache(root) } else { frontWrite = fmt.Errorf("cannot find root for frontend") } } else { frontWrite = e } if frontWrite == nil { cmd.Println("*************************************************************") cmd.Println(" Please restart now. Frontend config has been updated ") cmd.Println("**************************************************************") } else { cmd.Println("*************************************************************") cmd.Println(" Please restart now.") cmd.Println(" WARNING: Frontend Config was not updated, update it manually!") cmd.Println(" Error was ", frontWrite.Error()) cmd.Println("**************************************************************") } }, }
enableCmd represents the enable command
View Source
var StartCmd = &cobra.Command{ Use: "start", Short: "Start Cells services", Long: `Start one or more services on this machine ### Syntax $ ` + os.Args[0] + ` start [flags] args... Additional arguments are regexp that can match any of the service names available (see 'list' command). The -t/--tags flag may limit to only a certain category of services, use lowercase like broker, idm, data, etc... The -x/--exclude flag may exclude one or more services Both flags may be used in conjunction with the regexp arguments. ### Examples Start only services starting with grpc $ ` + os.Args[0] + ` start pydio.grpc Start only services for scheduler $ ` + os.Args[0] + ` start --tag=scheduler Start whole plateform except the roles service $ ` + os.Args[0] + ` start --exclude=pydio.grpc.idm.roles `, PreRun: func(cmd *cobra.Command, args []string) { registry.Default.Filter(func(s registry.Service) bool { re := regexp.MustCompile(common.SERVICE_INSTALL) if re.MatchString(s.Name()) { return true } return false }) registry.Default.Filter(func(s registry.Service) bool { for _, t := range FilterStartTags { for _, st := range s.Tags() { if t == st { return false } } } return len(FilterStartTags) > 0 }) registry.Default.Filter(func(s registry.Service) bool { for _, arg := range args { reArg := regexp.MustCompile(arg) if reArg.MatchString(s.Name()) { return false } if s.MatchesRegexp(arg) { return false } } return len(args) > 0 }) registry.Default.Filter(func(s registry.Service) bool { if len(args) == 0 && s.Regexp() != nil { return true } return false }) if s, err := registry.Default.ListServices(); err != nil { cmd.Print("Could not retrieve list of services") os.Exit(0) } else { allServices = s } }, Run: func(cmd *cobra.Command, args []string) { if !IsFork { if e := checkFdlimit(); e != nil { log.Fatal(e.Error()) } } for _, service := range allServices { if !IsFork && service.RequiresFork() { go service.ForkStart() } else { go service.Start() } } wg.Add(1) wg.Wait() }, }
StartCmd represents the start command
Functions ¶
Types ¶
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package benchmark is the main package for performing benchmarking requests
|
Package benchmark is the main package for performing benchmarking requests |
cmd
Package cmd implements commands for the benchmark command line tool
|
Package cmd implements commands for the benchmark command line tool |
cmd/testsgo
Package tests is a first draft for benchmarking.
|
Package tests is a first draft for benchmarking. |
cmd/testsgo/dummysetup
Package dummysetup provides utilitary methods to set up a dummy environment for benchmarks.
|
Package dummysetup provides utilitary methods to set up a dummy environment for benchmarks. |
cmd/testsgo/idmtest
Package idmtest performs benchmarks on Roles
|
Package idmtest performs benchmarks on Roles |
Package cli is the pydio control client for performing grpc requests on running services
|
Package cli is the pydio control client for performing grpc requests on running services |
cmd
Package cmd implements all commands for pydio control client
|
Package cmd implements all commands for pydio control client |
Click to show internal directories.
Click to hide internal directories.