Skip to content

Commit 527f58e

Browse files
committed
separate lean server from socket server
1 parent b239a5d commit 527f58e

11 files changed

+18
-22
lines changed

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
node_modules
2-
games/
32
client/dist
43
games/
54
server/.lake

doc/DOCUMENTATION.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,9 @@ cd lean4game
297297
npm install
298298
```
299299

300+
TODO: This is outdated!
300301
If you are developing a game other than `Robo` or `NNG4`, adapt the
301-
code at the beginning of `lean4game/server/index.mjs`:
302+
code at the beginning of `lean4game/relay/index.mjs`:
302303
```typescript
303304
const games = {
304305
"g/hhu-adam/robo": {

ecosystem.config.cjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
module.exports = {
33
apps : [{
44
name : "lean4game",
5-
script : "server/index.mjs",
5+
script : "relay/index.mjs",
66
env: {
77
LEAN4GAME_GITHUB_USER: "",
88
LEAN4GAME_GITHUB_TOKEN: "",

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@
6363
},
6464
"scripts": {
6565
"start": "concurrently -n server,client -c blue,green \"npm run start_server\" \"npm run start_client\"",
66-
"start_server": "cd server && lake build && cross-env NODE_ENV=development nodemon -e mjs --exec \"node ./index.mjs\"",
66+
"start_server": "(cd server && lake build) && (cd relay && cross-env NODE_ENV=development nodemon -e mjs --exec \"node ./index.mjs\")",
6767
"start_client": "cross-env NODE_ENV=development vite --host",
6868
"build": "npm run build_server && npm run build_client",
6969
"preview": "vite preview",
7070
"build_server": "cd server && lake build",
7171
"build_client": "cross-env NODE_ENV=production vite build",
72-
"production": "cross-env NODE_ENV=production node server/index.mjs"
72+
"production": "cross-env NODE_ENV=production node relay/index.mjs"
7373
},
7474
"eslintConfig": {
7575
"extends": [
File renamed without changes.

server/import.mjs renamed to relay/import.mjs

+8-8
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,17 @@ async function doImport (owner, repo, id) {
7979
artifactId = artifact.id
8080
const url = artifact.archive_download_url
8181
// Make sure the download folder exists
82-
if (!fs.existsSync(`${__dirname}/../games`)){
83-
fs.mkdirSync(`${__dirname}/../games`);
82+
if (!fs.existsSync(path.join(__dirname, "..", "games"))){
83+
fs.mkdirSync(path.join(__dirname, "..", "games"));
8484
}
85-
if (!fs.existsSync(`${__dirname}/../games/tmp`)){
86-
fs.mkdirSync(`${__dirname}/../games/tmp`);
85+
if (!fs.existsSync(path.join(__dirname, "..", "games", "tmp"))){
86+
fs.mkdirSync(path.join(__dirname, "..", "games", "tmp"));
8787
}
8888
progress[id].output += `Download from ${url}\n`
89-
await download(id, url, `${__dirname}/../games/tmp/${owner.toLowerCase()}_${repo.toLowerCase()}_${artifactId}.zip`)
89+
await download(id, url, path.join(__dirname, "..", "games", "tmp", `${owner.toLowerCase()}_${repo.toLowerCase()}_${artifactId}.zip`))
9090
progress[id].output += `Download finished.\n`
9191

92-
await runProcess(id, "/bin/bash", [`${__dirname}/unpack.sh`, artifactId, owner.toLowerCase(), repo.toLowerCase()], `${__dirname}/..`)
92+
await runProcess(id, "/bin/bash", [path.join(__dirname, "unpack.sh"), artifactId, owner.toLowerCase(), repo.toLowerCase()], path.join(__dirname, ".."))
9393

9494

9595
// let manifest = fs.readFileSync(`tmp/artifact_${artifactId}_inner/manifest.json`);
@@ -110,8 +110,8 @@ async function doImport (owner, repo, id) {
110110
} finally {
111111
// clean-up temp. files
112112
if (artifactId) {
113-
fs.rmSync(`${__dirname}/../games/tmp/${owner}_${repo}_${artifactId}.zip`, {force: true, recursive: false});
114-
fs.rmSync(`${__dirname}/../games/tmp/${owner}_${repo}_${artifactId}`, {force: true, recursive: true});
113+
fs.rmSync(path.join(__dirname, "..", "games", "tmp", `${owner}_${repo}_${artifactId}.zip`), {force: true, recursive: false});
114+
fs.rmSync(path.join(__dirname, "..", "games", "tmp", `${owner}_${repo}_${artifactId}`), {force: true, recursive: true});
115115
}
116116
progress[id].done = true
117117
}

server/index.mjs renamed to relay/index.mjs

+2-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ router.get('/import/status/:owner/:repo', importStatus)
3535
router.get('/import/trigger/:owner/:repo', importTrigger)
3636

3737
const server = app
38-
.use(express.static(path.join(__dirname, '../client/dist/'))) // TODO: add a dist folder from inside the game
38+
.use(express.static(path.join(__dirname, '..', 'client', 'dist'))) // TODO: add a dist folder from inside the game
3939
.use('/data/g/:owner/:repo/*', (req, res, next) => {
4040
const owner = req.params.owner;
4141
const repo = req.params.repo
@@ -103,15 +103,14 @@ function startServerProcess(owner, repo) {
103103
} else {
104104
// If the game is built with `-Klean4game.local` there is no copy in the lake packages.
105105
serverProcess = cp.spawn("./gameserver", args,
106-
{ cwd: path.join(__dirname, ".lake", "build", "bin") })
106+
{ cwd: path.join(__dirname, "..", "server", ".lake", "build", "bin") })
107107
}
108108
} else {
109109
serverProcess = cp.spawn("./bubblewrap.sh",
110110
[ game_dir, path.join(__dirname, '..')],
111111
{ cwd: __dirname })
112112
}
113113

114-
115114
serverProcess.on('error', error =>
116115
console.error(`Launching Lean Server failed: ${error}`)
117116
)

server/unpack.sh renamed to relay/unpack.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ REPO=$3
66

77
# mkdir -p games
88
cd games
9-
pwd
9+
1010
# mkdir -p tmp
1111
mkdir -p ${OWNER}
1212

server/.gitignore

-3
This file was deleted.

tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
"experimentalDecorators": true,
1313
"allowSyntheticDefaultImports": true,
1414
},
15-
"exclude": ["server"]
15+
"exclude": ["server", "relay"]
1616
}

vite.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default defineConfig({
88
//root: 'client/src',
99
build: {
1010
// Relative to the root
11-
// Note: This has to match the path in `server/index.mjs`
11+
// Note: This has to match the path in `relay/index.mjs`
1212
outDir: 'client/dist',
1313
},
1414
plugins: [

0 commit comments

Comments
 (0)