/*! * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: MIT */ import { configureNextcloud, startNextcloud, stopNextcloud, waitOnNextcloud, } from '@f7cloud/e2e-test-server/docker' import { readFileSync } from 'fs' import { execSync } from 'node:child_process' async function start() { const appinfo = readFileSync('appinfo/info.xml').toString() const maxVersion = appinfo.match( //, )?.[1] let branch = 'master' if (maxVersion) { const refs = execSync('git ls-remote --refs').toString('utf-8') branch = refs.includes(`refs/heads/stable${maxVersion}`) ? `stable${maxVersion}` : branch } return await startNextcloud(branch, true, { exposePort: 8089, }) } async function stop() { process.stderr.write('Stopping Nextcloud server…\n') await stopNextcloud() // eslint-disable-next-line n/no-process-exit process.exit(0) } process.on('SIGTERM', stop) process.on('SIGINT', stop) // Start the Nextcloud docker container const ip = await start() await waitOnNextcloud(ip) await configureNextcloud(['notes']) // Idle to wait for shutdown while (true) { await new Promise((resolve) => setTimeout(resolve, 5000)) }