diff --git a/config.go b/config.go index 032838b..4e76cce 100644 --- a/config.go +++ b/config.go @@ -9,11 +9,27 @@ import ( "gopkg.in/yaml.v3" ) +func DefCfg() *DefConfig { + c := &DefConfig{} + // server settings + c.Server.ServDir = "factorio" + c.Server.ServPort = 34197 + c.Server.ServCfg = "factorio/data/server-settings.json" + c.Server.ServExec = "factorio/bin/x64/factorio" + c.Server.WorldFile = "factorio/saves/newworld.zip" + c.Factoryman.UseScreen = true + c.Factoryman.ScreenName = "factorio" + c.Factoryman.BackupDir = "factorio/backups" + c.Factoryman.UserName = "" + c.Factoryman.ApiToken = "" + return c +} func readCfg(factCfg string) UsrConfig { //read config file (YAML) fileBytes, err := os.ReadFile(factCfg) if err != nil { - log.Fatalf("Error reading config file: %v", err) + fmt.Printf("Error reading config.yml file, using defaults\n") + return UsrConfig(*DefCfg()) } // return Struct var config UsrConfig diff --git a/config.yml b/config.yml index fe21fa9..ef6a96e 100644 --- a/config.yml +++ b/config.yml @@ -1,6 +1,6 @@ server: serverFolder: "factorio" - worldFile: "" + worldFile: "factorio/saves/newworld.zip" serverSettings: "factorio/data/server-settings.json" serverExec: "factorio/bin/x64/factorio" port: 34197 diff --git a/factoryman b/factoryman index cf82948..ee9a744 100755 Binary files a/factoryman and b/factoryman differ diff --git a/structs.go b/structs.go index 9967720..3d15909 100644 --- a/structs.go +++ b/structs.go @@ -19,6 +19,24 @@ type UsrConfig struct { } `yaml:"factoryman"` } +type DefConfig struct { + Server struct { // server specific settings + ServDir string + WorldFile string + ServCfg string + ServExec string + ServPort int + } + + Factoryman struct { // factoryman settings + BackupDir string + UseScreen bool + ScreenName string + UserName string + ApiToken string + } +} + // JSON file from config type Mod struct { Name string `json:"name"`