feat(Command): Added procedure for generating default configs
This commit is contained in:
parent
67af246a61
commit
9c8a2851bd
1 changed files with 111 additions and 0 deletions
111
Commands/GenerateDefaultConfigs.go
Normal file
111
Commands/GenerateDefaultConfigs.go
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
package Commands
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/urfave/cli/v2"
|
||||
"os"
|
||||
"scabiosa/Logging"
|
||||
"scabiosa/Tools"
|
||||
)
|
||||
|
||||
func GenerateNewConfigs() *cli.Command {
|
||||
logger := Logging.Logger("generate-configs")
|
||||
|
||||
return &cli.Command{
|
||||
Name: "generate-config",
|
||||
Usage: "Generates the default configs",
|
||||
Description: "Creates the specified configs",
|
||||
HelpName: "generate-config",
|
||||
Action: func(c *cli.Context) error {
|
||||
err := os.RemoveAll("config/")
|
||||
os.Mkdir("config", 0755)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var sqlConfig Tools.SQLConfig
|
||||
var input string
|
||||
var inputInt uint8
|
||||
fmt.Printf("Want to use SQL? [Y]/[N]: ")
|
||||
fmt.Scanf("%s", &input)
|
||||
if input[0] == 'Y' || input[0] == 'y' {
|
||||
sqlConfig.EnableSQL = true
|
||||
fmt.Printf("What SQL Type do you want to use?\n")
|
||||
fmt.Printf("[0] MariaDB\n")
|
||||
fmt.Printf("\nSelection: ")
|
||||
fmt.Scanf("%d", &inputInt)
|
||||
switch inputInt {
|
||||
case 0:
|
||||
{
|
||||
sqlConfig.SqlType = "mariadb"
|
||||
}
|
||||
default:
|
||||
{
|
||||
fmt.Printf("Invalid input!")
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Printf("\n\nSQL Address: ")
|
||||
fmt.Scanf("%s", &sqlConfig.SqlAddress)
|
||||
fmt.Printf("\nSQL Port: ")
|
||||
fmt.Scanf("%d", &sqlConfig.SqlPort)
|
||||
fmt.Printf("\nSQL Database: ")
|
||||
fmt.Scanf("%s", &sqlConfig.Database)
|
||||
fmt.Printf("\nSQL User: ")
|
||||
fmt.Scanf("%s", &sqlConfig.DbUser)
|
||||
fmt.Printf("\nSQL Password: ")
|
||||
fmt.Scanf("%s", &sqlConfig.DbPassword)
|
||||
|
||||
Tools.GenerateSQLConfig(sqlConfig)
|
||||
fmt.Printf("SQL config created!")
|
||||
|
||||
} else {
|
||||
sqlConfig.EnableSQL = false
|
||||
}
|
||||
|
||||
fmt.Printf("\n\nWhich storage do you want to use?\n")
|
||||
fmt.Printf("[0]\tNone\n")
|
||||
fmt.Printf("[1]\tAzure File Share\n")
|
||||
fmt.Printf("\nSelection: ")
|
||||
fmt.Scanf("%d", &inputInt)
|
||||
switch inputInt {
|
||||
case 0:
|
||||
{
|
||||
fmt.Printf("Reminder: remoteStorageType = none\n")
|
||||
//Do (nearly) nothing! :D
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
var azure Tools.AzureConfig
|
||||
fmt.Printf("\n\nStorageAccount Name: ")
|
||||
fmt.Scanf("%s", &azure.StorageAccountName)
|
||||
fmt.Printf("\nStorageAccount Key: ")
|
||||
fmt.Scanf("%s", &azure.StorageAccountKey)
|
||||
fmt.Printf("\nFileshare Name: ")
|
||||
fmt.Scanf("%s", &azure.FileshareName)
|
||||
Tools.GenerateAzureConfig(azure)
|
||||
fmt.Printf("\nAzure config created!\n")
|
||||
fmt.Printf("Reminder: remoteStorageType = azure-file\n")
|
||||
}
|
||||
default:
|
||||
{
|
||||
fmt.Printf("Invalid input!")
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
Tools.GenerateBaseConfig()
|
||||
fmt.Printf("All configs generated!\n")
|
||||
fmt.Printf("Please modify the config.json with your backup entries.\n")
|
||||
|
||||
return nil
|
||||
},
|
||||
OnUsageError: func(cc *cli.Context, err error, isSubcommand bool) error {
|
||||
if err != nil {
|
||||
logger.Fatal(err)
|
||||
}
|
||||
return err
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in a new issue