mirror of
https://github.com/Terncode/pixel.horse.git
synced 2026-09-24 21:55:52 +02:00
71 lines
1.8 KiB
TypeScript
71 lines
1.8 KiB
TypeScript
import { argv } from 'yargs';
|
|
import { ServerConfig } from '../common/adminInterfaces';
|
|
|
|
export interface AppConfig {
|
|
title: string;
|
|
twitterLink?: string;
|
|
supporterLink?: string;
|
|
contactEmail?: string;
|
|
port: number;
|
|
adminPort?: number;
|
|
host: string;
|
|
proxy?: number;
|
|
noindex?: boolean;
|
|
secret: string;
|
|
token: string;
|
|
local: string;
|
|
adminLocal?: string;
|
|
sw?: boolean;
|
|
db: string;
|
|
pg: any;
|
|
rollbar?: {
|
|
environment: string;
|
|
clientToken: string;
|
|
serverToken: string;
|
|
gulpToken: string;
|
|
};
|
|
analytics?: {
|
|
trackingID: string;
|
|
};
|
|
assetsPath?: string;
|
|
oauth: { [key: string]: any };
|
|
servers: ServerConfig[];
|
|
facebookAppId?: string;
|
|
}
|
|
|
|
export interface AppPackage {
|
|
name: string;
|
|
version: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface AppArgs {
|
|
port?: string;
|
|
login?: boolean;
|
|
admin?: boolean;
|
|
standaloneadmin?: boolean;
|
|
game?: string;
|
|
superadmin?: string;
|
|
users?: boolean;
|
|
tools?: boolean;
|
|
webpack?: boolean;
|
|
local?: boolean;
|
|
nocleanup?: boolean;
|
|
}
|
|
|
|
export const args = argv as AppArgs;
|
|
export const { version, description }: AppPackage = require('../../../package.json');
|
|
export const config: AppConfig = require('../../../config.json');
|
|
|
|
const loginServer: ServerConfig = { id: 'login', filter: false, port: config.port } as any;
|
|
const adminServer: ServerConfig = { id: 'admin', filter: false, port: config.adminPort || config.port } as any;
|
|
|
|
export const gameServers = config.servers.filter(s => !s.hidden);
|
|
|
|
const allServers = [...gameServers, loginServer, adminServer];
|
|
allServers.forEach(s => s.flags = s.flags || {});
|
|
const serverId = args.game || (args.login ? 'login' : (args.admin ? 'admin' : allServers[0].id));
|
|
|
|
export const server = allServers.find(s => s.id === serverId) || allServers[0];
|
|
export const port = (args.port && parseInt(args.port, 10)) || server.port || config.port;
|