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