| 30 | App::~App() { stopAsyncFunctors(); } |
| 31 | |
| 32 | void App::initialise(const String& commandLineParameters) { |
| 33 | auto args = getCommandLineParameterArray(); |
| 34 | enum Modes { SCAN, MASTER, SERVER, SANDBOX_CHAIN, SANDBOX_PLUGIN }; |
| 35 | Modes mode = MASTER; |
| 36 | String fileToScan, pluginId, clientId, error; |
| 37 | int workerPort = 0, srvId = -1; |
| 38 | json jconfig; |
| 39 | bool log = false, isLocal = false, secondRun = false; |
| 40 | for (int i = 0; i < args.size(); i++) { |
| 41 | if (!args[i].compare("-scan") && args.size() >= i + 2) { |
| 42 | fileToScan = args[++i]; |
| 43 | mode = SCAN; |
| 44 | } else if (!args[i].compare("-server")) { |
| 45 | mode = SERVER; |
| 46 | } else if (args[i].startsWith("--" + Defaults::SANDBOX_CMD_PREFIX)) { |
| 47 | mode = SANDBOX_CHAIN; |
| 48 | } else if (!args[i].compare("-load")) { |
| 49 | mode = SANDBOX_PLUGIN; |
| 50 | } else if (!args[i].compare("-log")) { |
| 51 | log = true; |
| 52 | } else if (!args[i].compare("-secondrun")) { |
| 53 | secondRun = true; |
| 54 | } else if (!args[i].compare("-islocal") && args.size() >= i + 2) { |
| 55 | isLocal = args[++i] == "1"; |
| 56 | } else if (!args[i].compare("-pluginid") && args.size() >= i + 2) { |
| 57 | pluginId = args[++i]; |
| 58 | } else if (!args[i].compare("-clientid") && args.size() >= i + 2) { |
| 59 | clientId = args[++i]; |
| 60 | } else if (!args[i].compare("-workerport") && args.size() >= i + 2) { |
| 61 | workerPort = args[++i].getIntValue(); |
| 62 | } else if (!args[i].compare("-id") && args.size() >= i + 2) { |
| 63 | srvId = args[++i].getIntValue(); |
| 64 | } else if (!args[i].compare("-config") && args.size() >= i + 2) { |
| 65 | MemoryBlock config; |
| 66 | if (config.fromBase64Encoding(args[++i])) { |
| 67 | try { |
| 68 | jconfig = json::parse(config.begin(), config.end()); |
| 69 | } catch (json::parse_error& e) { |
| 70 | error << "failed to parse -config value: " << e.what(); |
| 71 | } |
| 72 | } else { |
| 73 | error << "failed to decode -config value"; |
| 74 | } |
| 75 | } |
| 76 | } |
| 77 | String cfgFile = Defaults::getConfigFileName(Defaults::ConfigServer, {{"id", String(srvId)}}); |
| 78 | String appName; |
| 79 | String logName = getApplicationName() + "_"; |
| 80 | bool linkLatest = true; |
| 81 | switch (mode) { |
| 82 | case MASTER: |
| 83 | appName = "Master"; |
| 84 | break; |
| 85 | case SCAN: |
| 86 | appName = "Scan"; |
| 87 | logName = fileToScan + "_"; |
| 88 | logName = logName.replaceCharacters(":/\\|. ", "------").trimCharactersAtStart("-"); |
| 89 | break; |
nothing calls this directly
no test coverage detected