feat: overhaul server automation, files editor, and CS2 setup workflows
This commit is contained in:
@@ -10,6 +10,68 @@ export type PluginSource = 'spiget' | 'manual';
|
||||
|
||||
export type ConfigParser = 'properties' | 'json' | 'yaml' | 'keyvalue';
|
||||
|
||||
export type ServerAutomationEvent =
|
||||
| 'server.created'
|
||||
| 'server.install.completed'
|
||||
| 'server.power.started'
|
||||
| 'server.power.stopped';
|
||||
|
||||
export type ServerAutomationActionType =
|
||||
| 'github_release_extract'
|
||||
| 'http_directory_extract'
|
||||
| 'write_file'
|
||||
| 'send_command';
|
||||
|
||||
export interface ServerAutomationGitHubReleaseExtractAction {
|
||||
id: string;
|
||||
type: 'github_release_extract';
|
||||
owner: string;
|
||||
repo: string;
|
||||
assetNamePatterns: string[];
|
||||
destination?: string;
|
||||
stripComponents?: number;
|
||||
maxBytes?: number;
|
||||
}
|
||||
|
||||
export interface ServerAutomationWriteFileAction {
|
||||
id: string;
|
||||
type: 'write_file';
|
||||
path: string;
|
||||
data: string;
|
||||
encoding?: 'utf8' | 'base64';
|
||||
}
|
||||
|
||||
export interface ServerAutomationHttpDirectoryExtractAction {
|
||||
id: string;
|
||||
type: 'http_directory_extract';
|
||||
indexUrl: string;
|
||||
assetNamePattern: string;
|
||||
destination?: string;
|
||||
stripComponents?: number;
|
||||
maxBytes?: number;
|
||||
}
|
||||
|
||||
export interface ServerAutomationSendCommandAction {
|
||||
id: string;
|
||||
type: 'send_command';
|
||||
command: string;
|
||||
}
|
||||
|
||||
export type ServerAutomationAction =
|
||||
| ServerAutomationGitHubReleaseExtractAction
|
||||
| ServerAutomationHttpDirectoryExtractAction
|
||||
| ServerAutomationWriteFileAction
|
||||
| ServerAutomationSendCommandAction;
|
||||
|
||||
export interface GameAutomationWorkflow {
|
||||
id: string;
|
||||
event: ServerAutomationEvent;
|
||||
enabled?: boolean;
|
||||
runOncePerServer?: boolean;
|
||||
continueOnError?: boolean;
|
||||
actions: ServerAutomationAction[];
|
||||
}
|
||||
|
||||
export interface GameConfigFile {
|
||||
path: string;
|
||||
parser: ConfigParser;
|
||||
@@ -23,6 +85,8 @@ export interface GameEnvVar {
|
||||
required: boolean;
|
||||
}
|
||||
|
||||
export type GameAutomationRule = GameAutomationWorkflow;
|
||||
|
||||
export interface ConfigEntry {
|
||||
key: string;
|
||||
value: string;
|
||||
|
||||
Reference in New Issue
Block a user