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. You don't need to install any dependency. Cells currently only supports NATS (nats.io) implementation. If a gnatsd service is already running, it will be detected. ### Cells working directories By default, application data is stored under the standard OS application dir : - Linux: ${USER_HOME}/.config/pydio/cells - Darwin: ${USER_HOME}/Library/Application Support/Pydio/cells - Windows: ${USER_HOME}/ApplicationData/Roaming/Pydio/cells You can customize the various storage locations with the following ENV variables : - CELLS_WORKING_DIR : replace the whole standard application dir - CELLS_DATA_DIR : replace the location for storing default datasources (default CELLS_WORKING_DIR/data) - CELLS_LOG_DIR : replace the location for storing logs (default CELLS_WORKING_DIR/logs) - CELLS_SERVICES_DIR : replace location for services-specific data (default CELLS_WORKING_DIR/services) `, PreRun: func(cmd *cobra.Command, args []string) {}, PersistentPreRun: func(cmd *cobra.Command, args []string) { if cmd.Long == StartCmd.Long { common.LogCaptureStdOut = true } handleRegistry() handleBroker() handleTransport() handleSignals() plugins.Init() 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 TLS configuration of the application internal proxy", Long: ` This command lets you enable/disabled SSL on application main access point. Four modes are currently supported: - TLS mode : provide the paths to certificate and key (as you would on an apache server) - Let's Encrypt: certificate is automagically generated during installation process, and later managed (e.g. renewed) by the embedded Caddy 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) { extURL, _ := url.Parse(config.Get("defaults", "url").String("")) intURL, _ := url.Parse(config.Get("defaults", "urlInternal").String("")) enabled, certData, e := promptSslMode(intURL.Hostname()) if e != nil { log.Fatal(e) } 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") config.Set(certData, "cert") if e := config.Save("cli", "Update SSL mode"); e != nil { cmd.Println("Error while saving config: " + e.Error()) } cmd.Println("*************************************************************") cmd.Println(" Config has been updated, please restart now!") cmd.Println("**************************************************************") }, }
SslModeCmd permits configuration of used SSL mode.
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 `, PreRunE: func(cmd *cobra.Command, args []string) error { if !IsFork { if err := checkFdlimit(); err != nil { return err } } 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 { registry.ProcessStartTags = append(registry.ProcessStartTags, "t:"+t) 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()) { registry.ProcessStartTags = append(registry.ProcessStartTags, "s:"+s.Name()) return false } if s.MatchesRegexp(arg) { registry.ProcessStartTags = append(registry.ProcessStartTags, "s:"+s.Name()) 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 }) for _, x := range FilterStartExclude { registry.ProcessStartTags = append(registry.ProcessStartTags, "x:"+x) } if s, err := registry.Default.ListServices(); err != nil { return fmt.Errorf("Could not retrieve list of services") } else { allServices = s } return nil }, Run: func(cmd *cobra.Command, args []string) { if a, _ := config.GetDefaultDatabase(); a == "" { var crtUser string if u, er := user.Current(); er == nil { crtUser = "(currently running as '" + u.Username + "')" } cmd.Println("****************************************************************************************") cmd.Println("# ") cmd.Println("# " + promptui.IconBad + " Oops, cannot find a valid configuration for the database!") cmd.Println("# ") cmd.Println("# A - If it is the first time you start " + os.Args[0] + ", make sure to first run the install step:") cmd.Println("# $> " + os.Args[0] + " install") cmd.Println("# ") cmd.Println("# B - If you have already installed, maybe the configuration file is not accessible.") cmd.Println("# Working Directory is " + config.ApplicationWorkingDir()) cmd.Println("# If you did not set the CELLS_WORKING_DIR environment variable, make sure you are ") cmd.Println("# launching the process as the correct OS user " + crtUser + ".") cmd.Println("# ") cmd.Println("****************************************************************************************") cmd.Println("") cmd.Println("Exiting now...") return } for _, service := range allServices { if !IsFork && service.RequiresFork() { if !service.AutoStart() { continue } go service.ForkStart() } else { go service.Start() } } wg.Add(1) wg.Wait() }, }
StartCmd represents the start command
Functions ¶
Types ¶
Source Files ¶
- acl-create.go
- acl-delete.go
- acl-patch-recycle-personal.go
- acl-search.go
- acl.go
- config-database-add.go
- config-database-list.go
- config-database-set.go
- config-database.go
- config-del.go
- config-list.go
- config-set.go
- config-ssl-mode.go
- config-ssl.go
- config-versions.go
- config.go
- data-sync.go
- data.go
- doc-deps.go
- doc-generate.go
- doc-i18n-count.go
- doc-i18n.go
- doc.go
- install-cli.go
- install.go
- meta-put.go
- meta-read.go
- meta.go
- ps.go
- rlimit_posix.go
- root.go
- signals.go
- start.go
- stop.go
- update.go
- user-create.go
- user-delete.go
- user-search.go
- user-set-profile.go
- user-unlock.go
- user.go
- version.go
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 |
Click to show internal directories.
Click to hide internal directories.