diff options
Diffstat (limited to 'gui/src/main/command-line-options.ts')
| -rw-r--r-- | gui/src/main/command-line-options.ts | 60 |
1 files changed, 45 insertions, 15 deletions
diff --git a/gui/src/main/command-line-options.ts b/gui/src/main/command-line-options.ts index 543a384029..a7300d1f83 100644 --- a/gui/src/main/command-line-options.ts +++ b/gui/src/main/command-line-options.ts @@ -1,17 +1,47 @@ -enum CommandLineOptions { - showChanges = '--show-changes', - disableResetNavigation = '--disable-reset-navigation', // development only - disableDevtoolsOpen = '--disable-devtools-open', // development only - forwardRendererLog = '--forward-renderer-log', // development only +class CommandLineOption { + private options: string[]; + + public constructor(private description: string, ...options: string[]) { + this.options = options; + } + + public get match(): boolean { + return this.options.some((option) => process.argv.includes(option)); + } + + public format(): string { + return formatOption(this.description, ...this.options); + } +} + +class DevelopmentCommandLineOption extends CommandLineOption { + public constructor(...options: string[]) { + super('', ...options); + } + + public get match(): boolean { + return process.env.NODE_ENV === 'development' && super.match; + } } -export const SHOULD_SHOW_CHANGES = process.argv.includes(CommandLineOptions.showChanges); -export const SHOULD_DISABLE_RESET_NAVIGATION = process.argv.includes( - CommandLineOptions.disableResetNavigation, -); -export const SHOULD_DISABLE_DEVTOOLS_OPEN = process.argv.includes( - CommandLineOptions.disableDevtoolsOpen, -); -export const SHOULD_FORWARD_RENDERER_LOG = process.argv.includes( - CommandLineOptions.forwardRendererLog, -); +export const CommandLineOptions = { + showChanges: new CommandLineOption('Show changes dialog', '--show-changes'), + disableResetNavigation: new DevelopmentCommandLineOption('--disable-reset-navigation'), + disableDevtoolsOpen: new DevelopmentCommandLineOption('--disable-devtools-open'), + forwardRendererLog: new DevelopmentCommandLineOption('--forward-renderer-log'), +} as const; + +export function printCommandLineOptions() { + Object.values(CommandLineOptions).forEach((option) => { + if (!(option instanceof DevelopmentCommandLineOption)) { + console.log(option.format()); + } + }); +} + +function formatOption(description: string, ...options: string[]) { + const joinedOptions = options.join(', '); + const padding = ' '; + const paddedOptions = (joinedOptions + padding).slice(0, -joinedOptions.length); + return ' ' + paddedOptions + description; +} |
