39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
const modulename = 'WebServer:SetupGet';
|
|
import path from 'node:path';
|
|
import { txEnv, txHostConfig } from '@core/globalData';
|
|
import { RECIPE_DEPLOYER_VERSION } from '@core/deployer/index';
|
|
import consoleFactory from '@lib/console';
|
|
import { TxConfigState } from '@shared/enums';
|
|
import { AuthedCtx } from '@modules/WebServer/ctxTypes';
|
|
const console = consoleFactory(modulename);
|
|
|
|
|
|
/**
|
|
* Returns the output page containing the live console
|
|
*/
|
|
export default async function SetupGet(ctx: AuthedCtx) {
|
|
//Check permissions
|
|
if (!ctx.admin.hasPermission('master')) {
|
|
return ctx.utils.render('main/message', {message: 'You need to be the admin master to use the setup page.'});
|
|
}
|
|
|
|
// Ensure correct state for the setup page
|
|
if(txManager.configState === TxConfigState.Deployer) {
|
|
return ctx.utils.legacyNavigateToPage('/server/deployer');
|
|
} else if(txManager.configState !== TxConfigState.Setup) {
|
|
return ctx.utils.legacyNavigateToPage('/');
|
|
}
|
|
|
|
//Output
|
|
const storedConfig = txCore.configStore.getStoredConfig();
|
|
const renderData = {
|
|
headerTitle: 'Setup',
|
|
skipServerName: !!(storedConfig.general?.serverName),
|
|
deployerEngineVersion: RECIPE_DEPLOYER_VERSION,
|
|
forceGameName: txHostConfig.forceGameName ?? '', //ejs injection works better with strings
|
|
dataPath: txHostConfig.dataPath,
|
|
hasCustomDataPath: txHostConfig.hasCustomDataPath,
|
|
};
|
|
return ctx.utils.render('standalone/setup', renderData);
|
|
};
|