f7cloud_client/apps/whiteboard/playwright/start-nextcloud-server.mjs
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

44 lines
1.1 KiB
JavaScript

/**
* SPDX-FileCopyrightText: 2024 Ferdinand Thiessen <opensource@fthiessen.de>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { startNextcloud, stopNextcloud } from '@f7cloud/e2e-test-server/docker'
import { readFileSync } from 'fs'
const start = async () => {
return await startNextcloud(getBranch(), true, {
exposePort: 8089,
})
}
const getBranch = () => {
const serverVersion = process.env.SERVER_VERSION
if (serverVersion) {
return serverVersion
}
try {
const appinfo = readFileSync('appinfo/info.xml').toString()
const maxVersion = appinfo.match(
/<nextcloud min-version="\d+" max-version="(\d\d+)" \/>/,
)?.[1]
return maxVersion ? `stable${maxVersion}` : undefined
} catch (err) {
if (err.code === 'ENOENT') {
console.warn('No appinfo/info.xml found. Using default server branch.')
}
}
}
// Start the Nextcloud docker container
await start()
// Listen for process to exit (tests done) and shut down the docker container
process.on('beforeExit', (code) => {
stopNextcloud()
})
// Idle to wait for shutdown
while (true) {
await new Promise((resolve) => setTimeout(resolve, 5000))
}