github.com/rclone/rclone@v1.66.1-0.20240517100346-7b89735ae726/fs/rc/rcflags/rcflags.go (about) 1 // Package rcflags implements command line flags to set up the remote control 2 package rcflags 3 4 import ( 5 "github.com/rclone/rclone/fs/config/flags" 6 "github.com/rclone/rclone/fs/rc" 7 "github.com/spf13/pflag" 8 ) 9 10 // FlagPrefix is the prefix used to uniquely identify command line flags. 11 const FlagPrefix = "rc-" 12 13 // Options set by command line flags 14 var ( 15 Opt = rc.DefaultOpt 16 ) 17 18 // AddFlags adds the remote control flags to the flagSet 19 func AddFlags(flagSet *pflag.FlagSet) { 20 rc.AddOption("rc", &Opt) 21 flags.BoolVarP(flagSet, &Opt.Enabled, "rc", "", false, "Enable the remote control server", "RC") 22 flags.StringVarP(flagSet, &Opt.Files, "rc-files", "", "", "Path to local files to serve on the HTTP server", "RC") 23 flags.BoolVarP(flagSet, &Opt.Serve, "rc-serve", "", false, "Enable the serving of remote objects", "RC") 24 flags.BoolVarP(flagSet, &Opt.ServeNoModTime, "rc-serve-no-modtime", "", false, "Don't read the modification time (can speed things up)", "RC") 25 flags.BoolVarP(flagSet, &Opt.NoAuth, "rc-no-auth", "", false, "Don't require auth for certain methods", "RC") 26 flags.BoolVarP(flagSet, &Opt.WebUI, "rc-web-gui", "", false, "Launch WebGUI on localhost", "RC") 27 flags.BoolVarP(flagSet, &Opt.WebGUIUpdate, "rc-web-gui-update", "", false, "Check and update to latest version of web gui", "RC") 28 flags.BoolVarP(flagSet, &Opt.WebGUIForceUpdate, "rc-web-gui-force-update", "", false, "Force update to latest version of web gui", "RC") 29 flags.BoolVarP(flagSet, &Opt.WebGUINoOpenBrowser, "rc-web-gui-no-open-browser", "", false, "Don't open the browser automatically", "RC") 30 flags.StringVarP(flagSet, &Opt.WebGUIFetchURL, "rc-web-fetch-url", "", "https://api.github.com/repos/rclone/rclone-webui-react/releases/latest", "URL to fetch the releases for webgui", "RC") 31 flags.BoolVarP(flagSet, &Opt.EnableMetrics, "rc-enable-metrics", "", false, "Enable prometheus metrics on /metrics", "RC") 32 flags.DurationVarP(flagSet, &Opt.JobExpireDuration, "rc-job-expire-duration", "", Opt.JobExpireDuration, "Expire finished async jobs older than this value", "RC") 33 flags.DurationVarP(flagSet, &Opt.JobExpireInterval, "rc-job-expire-interval", "", Opt.JobExpireInterval, "Interval to check for expired async jobs", "RC") 34 Opt.HTTP.AddFlagsPrefix(flagSet, FlagPrefix) 35 Opt.Auth.AddFlagsPrefix(flagSet, FlagPrefix) 36 Opt.Template.AddFlagsPrefix(flagSet, FlagPrefix) 37 }