in cli/src/main/java/nl/obren/sokrates/cli/CommandLineInterface.java [273:342]
private void updateConfig(String[] args) throws ParseException, IOException {
Options options = getUpdateConfigOptions();
CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse(options, args);
startTimeoutIfDefined(cmd);
String strRootPath = cmd.getOptionValue(srcRoot.getOpt());
if (!cmd.hasOption(srcRoot.getOpt())) {
strRootPath = ".";
}
File root = new File(strRootPath);
if (!root.exists()) {
LOG.error("The src root \"" + root.getPath() + "\" does not exist.");
return;
}
File confFile = getConfigFile(cmd, root);
System.out.println("Configuration file '" + confFile.getPath() + "'.");
String jsonContent = FileUtils.readFileToString(confFile, UTF_8);
CodeConfiguration codeConfiguration = (CodeConfiguration) new JsonMapper().getObject(jsonContent, CodeConfiguration.class);
if (cmd.hasOption(skipComplexAnalyses.getOpt())) {
codeConfiguration.getAnalysis().setSkipDependencies(true);
codeConfiguration.getAnalysis().setSkipDuplication(true);
codeConfiguration.getAnalysis().setCacheSourceFiles(false);
}
if (cmd.hasOption(setName.getOpt())) {
String name = cmd.getOptionValue(setName.getOpt());
if (StringUtils.isNotBlank(name)) {
codeConfiguration.getMetadata().setName(name);
}
}
if (cmd.hasOption(setDescription.getOpt())) {
String description = cmd.getOptionValue(setDescription.getOpt());
if (StringUtils.isNotBlank(description)) {
codeConfiguration.getMetadata().setDescription(description);
}
}
if (cmd.hasOption(setLogoLink.getOpt())) {
String logoLink = cmd.getOptionValue(setLogoLink.getOpt());
if (StringUtils.isNotBlank(logoLink)) {
codeConfiguration.getMetadata().setLogoLink(logoLink);
}
}
if (cmd.hasOption(setCacheFiles.getOpt())) {
String cacheFileValue = cmd.getOptionValue(setCacheFiles.getOpt());
if (StringUtils.isNotBlank(cacheFileValue)) {
codeConfiguration.getAnalysis().setCacheSourceFiles(cacheFileValue.equalsIgnoreCase("true"));
}
}
if (cmd.hasOption(addLink.getOpt())) {
String linkData[] = cmd.getOptionValues(addLink.getOpt());
if (linkData.length >= 1 && StringUtils.isNotBlank(linkData[0])) {
String href = linkData[0];
String label = linkData.length >= 1 ? linkData[1] : "";
codeConfiguration.getMetadata().getLinks().add(new Link(label, href));
}
}
FileUtils.write(confFile, new JsonGenerator().generate(codeConfiguration), UTF_8);
}