FEAT: room credits

This commit is contained in:
zomo
2026-04-15 20:45:21 -05:00
parent 37f9bc215f
commit 4619fef9a3
3 changed files with 157 additions and 27 deletions
+69 -8
View File
@@ -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 {