FEAT: room credits
This commit is contained in:
@@ -28,17 +28,12 @@ func EmptyOut(outpath string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
cfpath := path.Join(outpath, "CF.ini")
|
||||
exists, err := Exists(cfpath)
|
||||
err = emptyOutCredits(outpath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !exists {
|
||||
return nil
|
||||
}
|
||||
|
||||
log.Printf("INFO: removing %s", cfpath)
|
||||
return os.Remove(cfpath)
|
||||
return emptyOutCF(outpath)
|
||||
}
|
||||
|
||||
func emptyOutData(outpath string) error {
|
||||
@@ -77,7 +72,36 @@ func emptyOutData(outpath string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func emptyOutCredits(outpath string) error {
|
||||
cfpath := path.Join(outpath, "credits.txt")
|
||||
exists, err := Exists(cfpath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !exists {
|
||||
return nil
|
||||
}
|
||||
|
||||
log.Printf("INFO: removing %s", cfpath)
|
||||
return os.Remove(cfpath)
|
||||
}
|
||||
|
||||
func emptyOutCF(outpath string) error {
|
||||
cfpath := path.Join(outpath, "CF.ini")
|
||||
exists, err := Exists(cfpath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !exists {
|
||||
return nil
|
||||
}
|
||||
|
||||
log.Printf("INFO: removing %s", cfpath)
|
||||
return os.Remove(cfpath)
|
||||
}
|
||||
|
||||
func CopyOut(roomFolders []RoomFolder, outpath string, splash1len, splash2len int) error {
|
||||
// base ini settings
|
||||
var inistr strings.Builder
|
||||
fmt.Fprintf(&inistr, `[SETTINGS]
|
||||
Sensitivity=6
|
||||
@@ -85,18 +109,55 @@ Splash1len=%d
|
||||
Splash2len=%d
|
||||
`, splash1len, splash2len)
|
||||
|
||||
// loop through folders
|
||||
roomcredits := []string{}
|
||||
for _, roomFolder := range roomFolders {
|
||||
err := copyFolder(roomFolder, outpath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error copying folder %s: %+v", roomFolder.Path, err)
|
||||
}
|
||||
inistr.WriteString(roomFolder.Cfg.ToIni())
|
||||
|
||||
roomFolder, err = checkCredits(roomFolder);
|
||||
if err != nil {
|
||||
return fmt.Errorf("error checking credits in folder %s: %+v", roomFolder.Path, err)
|
||||
}
|
||||
|
||||
roomcredits = append(roomcredits, roomFolder.Cfg.ToCredits())
|
||||
}
|
||||
|
||||
// save ini file
|
||||
outini := filepath.Join(outpath, "CF.ini")
|
||||
log.Println("INFO:")
|
||||
log.Printf("INFO: Writing %s", outini)
|
||||
return os.WriteFile(outini, []byte(inistr.String()), FILEPERM)
|
||||
|
||||
if err := os.WriteFile(outini, []byte(inistr.String()), FILEPERM); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// save credits file
|
||||
creditsstring := strings.Join(roomcredits, "\n")
|
||||
|
||||
outcredits := filepath.Join(outpath, "credits.txt")
|
||||
log.Println("INFO:")
|
||||
log.Printf("INFO: Writing %s", outcredits)
|
||||
|
||||
return os.WriteFile(outcredits, []byte(creditsstring), FILEPERM)
|
||||
}
|
||||
|
||||
// doesn't error currently
|
||||
func checkCredits(roomFolder RoomFolder) (RoomFolder, error) {
|
||||
if roomFolder.Cfg.name == "" {
|
||||
log.Println("WARNING: room config has no name, defaulting to folder name")
|
||||
foldername := filepath.Base(roomFolder.Path)
|
||||
roomFolder.Cfg.name = foldername
|
||||
}
|
||||
|
||||
if roomFolder.Cfg.credits == "" {
|
||||
log.Println("WARNING: room config has no credits")
|
||||
}
|
||||
|
||||
return roomFolder, nil
|
||||
}
|
||||
|
||||
func copyFolder(roomFolder RoomFolder, outpath string) error {
|
||||
|
||||
Reference in New Issue
Block a user