2018-08-19 22:36:30 +00:00
|
|
|
package command
|
|
|
|
|
|
|
|
import (
|
2021-07-24 01:41:25 +00:00
|
|
|
"fmt"
|
2022-07-29 07:17:28 +00:00
|
|
|
"github.com/seaweedfs/seaweedfs/weed/util"
|
2018-08-19 22:36:30 +00:00
|
|
|
"path/filepath"
|
2021-10-14 04:27:58 +00:00
|
|
|
|
2022-07-29 07:17:28 +00:00
|
|
|
"github.com/seaweedfs/seaweedfs/weed/command/scaffold"
|
2018-08-19 22:36:30 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
cmdScaffold.Run = runScaffold // break init cycle
|
|
|
|
}
|
|
|
|
|
|
|
|
var cmdScaffold = &Command{
|
2019-06-05 08:30:24 +00:00
|
|
|
UsageLine: "scaffold -config=[filer|notification|replication|security|master]",
|
2018-08-19 22:36:30 +00:00
|
|
|
Short: "generate basic configuration files",
|
|
|
|
Long: `Generate filer.toml with all possible configurations for you to customize.
|
|
|
|
|
2020-01-29 17:09:55 +00:00
|
|
|
The options can also be overwritten by environment variables.
|
|
|
|
For example, the filer.toml mysql password can be overwritten by environment variable
|
2020-01-29 17:11:07 +00:00
|
|
|
export WEED_MYSQL_PASSWORD=some_password
|
2020-01-29 17:09:55 +00:00
|
|
|
Environment variable rules:
|
2020-04-10 21:50:10 +00:00
|
|
|
* Prefix the variable name with "WEED_"
|
2020-01-29 17:09:55 +00:00
|
|
|
* Upppercase the reset of variable name.
|
|
|
|
* Replace '.' with '_'
|
|
|
|
|
2018-08-19 22:36:30 +00:00
|
|
|
`,
|
|
|
|
}
|
|
|
|
|
|
|
|
var (
|
|
|
|
outputPath = cmdScaffold.Flag.String("output", "", "if not empty, save the configuration file to this directory")
|
2019-06-05 08:30:24 +00:00
|
|
|
config = cmdScaffold.Flag.String("config", "filer", "[filer|notification|replication|security|master] the configuration file to generate")
|
2018-08-19 22:36:30 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func runScaffold(cmd *Command, args []string) bool {
|
|
|
|
|
|
|
|
content := ""
|
|
|
|
switch *config {
|
|
|
|
case "filer":
|
2021-07-05 03:16:49 +00:00
|
|
|
content = scaffold.Filer
|
2018-11-01 08:11:09 +00:00
|
|
|
case "notification":
|
2021-07-05 03:16:49 +00:00
|
|
|
content = scaffold.Notification
|
2018-09-17 07:27:56 +00:00
|
|
|
case "replication":
|
2021-07-05 03:16:49 +00:00
|
|
|
content = scaffold.Replication
|
2019-02-10 05:07:12 +00:00
|
|
|
case "security":
|
2021-07-05 03:16:49 +00:00
|
|
|
content = scaffold.Security
|
2019-06-05 08:30:24 +00:00
|
|
|
case "master":
|
2021-07-05 03:16:49 +00:00
|
|
|
content = scaffold.Master
|
2020-12-28 23:07:16 +00:00
|
|
|
case "shell":
|
2021-07-05 03:16:49 +00:00
|
|
|
content = scaffold.Shell
|
2018-08-19 22:36:30 +00:00
|
|
|
}
|
|
|
|
if content == "" {
|
|
|
|
println("need a valid -config option")
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
if *outputPath != "" {
|
2022-02-05 05:32:27 +00:00
|
|
|
util.WriteFile(filepath.Join(*outputPath, *config+".toml"), []byte(content), 0644)
|
2018-08-19 22:36:30 +00:00
|
|
|
} else {
|
2021-07-24 01:41:25 +00:00
|
|
|
fmt.Println(content)
|
2018-08-19 22:36:30 +00:00
|
|
|
}
|
|
|
|
return true
|
|
|
|
}
|