feat: store .jsdos bundle inside game directory instead of as flat file
Build & Deploy / build-and-deploy (push) Successful in 52s
Build & Deploy / build-and-deploy (push) Successful in 52s
Before: data/games/{id}.jsdos (flat, alongside the game dir)
After: data/games/{id}/{id}.jsdos (inside the game directory)
Benefits:
- Delete is atomic — removing the game dir removes everything
- Cleaner data directory structure
- No orphan .jsdos files on delete
Also updated frontend bundleUrl() to use game.bundle_file from
the backend, making it path-agnostic. Old flat layout is still
served via StaticResource for backward compat.
This commit is contained in:
@@ -127,9 +127,8 @@ public class GameService {
|
||||
}
|
||||
});
|
||||
}
|
||||
// Remove flat .jsdos bundle
|
||||
// Clean up old flat .jsdos locations (pre-game-dir layout — backward compat)
|
||||
Files.deleteIfExists(gamesDir.resolve(id + ".jsdos"));
|
||||
// Remove flat setup .jsdos bundle (if any)
|
||||
Files.deleteIfExists(gamesDir.resolve(id + ".setup.jsdos"));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -95,9 +95,9 @@ public class UploadResource {
|
||||
Path gameDir = svc.gameDir(gameId);
|
||||
Files.createDirectories(gameDir);
|
||||
|
||||
// Create .jsdos bundle (ZIP with game files + .jsdos/ config)
|
||||
String bundleFile = gameId + ".jsdos";
|
||||
Path bundlePath = svc.getGamesDir().resolve(bundleFile);
|
||||
// Create .jsdos bundle inside the game directory
|
||||
String bundleFile = gameId + "/" + gameId + ".jsdos";
|
||||
Path bundlePath = gameDir.resolve(gameId + ".jsdos");
|
||||
createBundle(extractDir, mainExe, bundlePath);
|
||||
|
||||
// Detect platform (DOS vs Windows) by reading the main EXE header
|
||||
|
||||
Reference in New Issue
Block a user