export function ProcesCommandLine()

in src/NodeJs/ConfigurationProcessor.ts [11:51]


export function ProcesCommandLine(): ICommandLineOptions {
    const parseOptions: minimist.Opts = {
        boolean: true,
        alias: {
            "help": "h",
            "mode": "m",
            "config": "c",
            "sourcetoken": "s",
            "targettoken": "t"
        }
    }
    const parsedArgs = minimist(process.argv, parseOptions);

    if (parsedArgs["h"]) {
        logger.logInfo(`Usage: process-migrator [--mode=<migrate(default)/import/export> [--config=<your-configuration-file-path>]`);
        process.exit(0);
    }

    const configFileName = parsedArgs[paramConfig] || normalize(defaultConfigurationFilename);

    const userSpecifiedMode = parsedArgs[paramMode] as string;
    let mode;
    if (userSpecifiedMode) {
        switch (userSpecifiedMode.toLocaleLowerCase()) {
            case Modes[Modes.export]: mode = Modes.export; break;
            case Modes[Modes.import]: mode = Modes.import; break;
            case Modes[Modes.migrate]: mode = Modes.migrate; break;
            default: logger.logError(`Invalid mode argument, allowed values are 'import', 'export' or 'migrate'.`); process.exit(1);
        }
    } else {
        mode = Modes.migrate;
    }

    const ret = {};
    ret[paramMode] = mode;
    ret[paramConfig] = configFileName;
    ret[paramSourceToken] = parsedArgs[paramSourceToken];
    ret[paramTargetToken] = parsedArgs[paramTargetToken];

    return <ICommandLineOptions>ret;
}