Skip to content

Commit

Permalink
Remove Logback (#47)
Browse files Browse the repository at this point in the history
* Remove logback in favor of simpler console logging

* Increase converage in exec module

* Fix exec pom
  • Loading branch information
brianwyka authored Feb 22, 2021
1 parent 3f2e1eb commit 38030ac
Show file tree
Hide file tree
Showing 50 changed files with 1,641 additions and 900 deletions.
604 changes: 274 additions & 330 deletions attribution.txt

Large diffs are not rendered by default.

22 changes: 8 additions & 14 deletions cli/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
<sonar.cpd.exclusions>**/picocli/**/*.*</sonar.cpd.exclusions>

<!-- PICOCLI VERSION -->
<picocli.version>4.5.2</picocli.version>
<picocli.version>4.6.1</picocli.version>

</properties>

Expand All @@ -46,14 +46,8 @@

<!-- THIRD-PARTY RUNTIME DEPENDENCIES -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.fusesource.jansi</groupId>
<artifactId>jansi</artifactId>
<version>1.17.1</version>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<scope>runtime</scope>
</dependency>

Expand Down Expand Up @@ -228,9 +222,9 @@
<type>jar</type>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
</plugin>
Expand Down Expand Up @@ -371,16 +365,16 @@
<rules>
<bannedDependencies>
<includes combine.children="append">
<include>ch.qos.logback:*:*:*:*</include>
<include>com.fasterxml.jackson.core:*:*:*:*</include>
<include>com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:*:*</include>
<include>com.jayway.jsonpath:json-path:*:*:*</include>
<include>net.minidev:accessors-smart:*:*:*</include>
<include>net.minidev:json-smart:*:*:*</include>
<include>org.apache.maven:maven-model:*:*:*</include>
<include>org.codehaus.plexus:plexus-utils:*:*:*</include>
<include>org.fusesource.jansi:jansi:*:*:*</include>
<include>org.ow2.asm:asm:*:*:*</include>
<include>org.slf4j:slf4j-api:*:*:*</include>
<include>org.slf4j:slf4j-nop:*:*:*</include>
<include>org.yaml:snakeyaml:*:*:*</include>
</includes>
</bannedDependencies>
Expand Down
6 changes: 5 additions & 1 deletion cli/scripts/update-picocli.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ set -e
#########################################################################

# Retrieve Latest Version
VERSION=$(curl -sI https://github.com/remkop/picocli/releases/latest | grep -i location | awk -F"/" '{ printf "%s", $NF }' | tr -d 'v' | tr -d '\r\n')
VERSION=$(curl -sI https://github.com/remkop/picocli/releases/latest | grep -i location: | awk -F"/" '{ printf "%s", $NF }' | tr -d 'v' | tr -d '\r\n')

# Global Variables
DIR="$( cd "$( dirname "$( dirname "${BASH_SOURCE[0]}" )")" && pwd )"
ROOT_DIR="$( cd "$( dirname "$( dirname "$( dirname "${BASH_SOURCE[0]}" )")")" && pwd )"
BASE_URL="https://raw.githubusercontent.com/remkop/picocli"
LICENSE_URL="$BASE_URL/v$VERSION/LICENSE"
LICENSE_FILE_PATH="$DIR/src/main/resources/META-INF/licenses/picocli.txt"
Expand All @@ -32,6 +33,9 @@ sed -i 's/public\sclass\sCommandLine/@SuppressWarnings({"rawtypes", "deprecation
# Replace the version in pom.xml file for plugin references
sed -i "s/<picocli.version>[-[:alnum:]./]\{1,\}<\/picocli.version>/<picocli.version>$VERSION<\/picocli.version>/" "$DIR/pom.xml"

# Replace the version in attribution.txt file
sed -i "s/Package: info.picocli:[-[:alnum:]./]\{1,\}/Package: info.picocli:$VERSION/" "$ROOT_DIR/attribution.txt"

# Remove TODOs so not highlighted in editor
sed -i 's/TODO/TIDO/g' "$SOURCE_FILE_PATH"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import com.optum.sourcehawk.core.data.RemoteRef;
import com.optum.sourcehawk.core.repository.BitbucketRepositoryFileReader;
import com.optum.sourcehawk.core.repository.RepositoryFileReader;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import picocli.CommandLine;

Expand All @@ -19,7 +18,6 @@
*
* @author Brian Wyka
*/
@Slf4j
@CommandLine.Command(
name = "bitbucket",
aliases = "bb",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ static class Exec {
@CommandLine.Option(
names = {"-f", "--output-format"},
description = "Output Format, valid values: ${COMPLETION-CANDIDATES}",
defaultValue = "CONSOLE",
defaultValue = "TEXT",
showDefaultValue = CommandLine.Help.Visibility.ALWAYS
)
OutputFormat outputFormat;
Expand Down
2 changes: 0 additions & 2 deletions cli/src/main/java/com/optum/sourcehawk/cli/FixCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.optum.sourcehawk.exec.fix.FixExecutor;
import com.optum.sourcehawk.exec.fix.FixResultFactory;
import com.optum.sourcehawk.exec.fix.FixResultLogger;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import picocli.CommandLine;

Expand All @@ -18,7 +17,6 @@
*
* @author Brian Wyka
*/
@Slf4j
@CommandLine.Command(
name = "fix",
aliases = { "correct", "resolve" },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@

import com.optum.sourcehawk.core.constants.SourcehawkConstants;
import com.optum.sourcehawk.core.result.FlattenConfigResult;
import com.optum.sourcehawk.core.utils.StringUtils;
import com.optum.sourcehawk.core.utils.Try;
import com.optum.sourcehawk.exec.ExecLoggers;
import com.optum.sourcehawk.exec.Console;
import com.optum.sourcehawk.exec.config.FlattenConfigExecutor;
import com.optum.sourcehawk.exec.config.FlattenConfigResultLogger;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import picocli.CommandLine;

Expand All @@ -20,7 +18,6 @@
*
* @author Christian Oestreich
*/
@Slf4j
@CommandLine.Command(
name = "flatten-config",
aliases = {"fc", "flatten"},
Expand Down Expand Up @@ -60,12 +57,9 @@ public static void main(final String... args) {
*/
public Integer call() {
val configurationFileLocation = getConfigurationFileLocation();
if (StringUtils.isBlankOrEmpty(configurationFileLocation)) {
return CommandLine.ExitCode.SOFTWARE;
}
val flattenConfigResult = execute(configurationFileLocation);
if (flattenConfigResult.isError()) {
ExecLoggers.CONSOLE_RAW.info(flattenConfigResult.getMessage());
Console.Err.log(flattenConfigResult.getMessage());
return CommandLine.ExitCode.SOFTWARE;
}
FlattenConfigResultLogger.log(flattenConfigResult, outputPath);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import com.optum.sourcehawk.core.data.RemoteRef;
import com.optum.sourcehawk.core.repository.GithubRepositoryFileReader;
import com.optum.sourcehawk.core.repository.RepositoryFileReader;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import picocli.CommandLine;

Expand All @@ -19,7 +18,6 @@
*
* @author Brian Wyka
*/
@Slf4j
@CommandLine.Command(
name = "github",
aliases = "gh",
Expand Down
2 changes: 0 additions & 2 deletions cli/src/main/java/com/optum/sourcehawk/cli/ScanCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.optum.sourcehawk.exec.scan.ScanExecutor;
import com.optum.sourcehawk.exec.scan.ScanResultFactory;
import com.optum.sourcehawk.exec.scan.ScanResultLogger;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import picocli.CommandLine;

Expand All @@ -18,7 +17,6 @@
*
* @author Brian Wyka
*/
@Slf4j
@CommandLine.Command(
name = "scan",
aliases = { "flyover", "survey" },
Expand Down
12 changes: 11 additions & 1 deletion cli/src/main/java/com/optum/sourcehawk/cli/Sourcehawk.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
aliases = "shawk",
description = "Watch over your source like a hawk",
mixinStandardHelpOptions = true,
headerHeading = "@|fg(magenta) >_ S O U R C E H A W K|@",
synopsisHeading = "%n",
commandListHeading ="%nCommands:%n",
footer = "Copyright (c) 2020 Optum",
versionProvider = Sourcehawk.VersionProvider.class,
subcommands = {
CommandLine.HelpCommand.class,
Expand All @@ -36,7 +40,13 @@ public class Sourcehawk {
* @param args the command line args
*/
public static void main(final String[] args) {
val status = new CommandLine(new Sourcehawk()).execute(args);
val defaultColorScheme = CommandLine.Help.defaultColorScheme(CommandLine.Help.Ansi.AUTO);
val colorScheme = new CommandLine.Help.ColorScheme.Builder(defaultColorScheme)
.commands(CommandLine.Help.Ansi.Style.bold, CommandLine.Help.Ansi.Style.fg_cyan)
.build();
val status = new CommandLine(new Sourcehawk())
.setColorScheme(colorScheme)
.execute(args);
Runtime.getRuntime().halt(status);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import com.optum.sourcehawk.core.utils.StringUtils;
import com.optum.sourcehawk.enforcer.file.FileEnforcer;
import com.optum.sourcehawk.exec.ConfigurationReader;
import com.optum.sourcehawk.exec.ExecLoggers;
import com.optum.sourcehawk.exec.Console;
import lombok.val;
import picocli.CommandLine;

Expand Down Expand Up @@ -77,34 +77,34 @@ public Integer call() {
if (Files.exists(childConfigFilePath)) {
sourcehawkConfiguration = ConfigurationReader.parseConfiguration(childConfigFilePath);
} else {
ExecLoggers.CONSOLE_RAW.error("Configuration file is a directory and does not contain {} file", SourcehawkConstants.DEFAULT_CONFIG_FILE_NAME);
Console.Err.log("Configuration file is a directory and does not contain %s file", SourcehawkConstants.DEFAULT_CONFIG_FILE_NAME);
return CommandLine.ExitCode.USAGE;
}
} else if (Files.exists(configFilePath)) {
sourcehawkConfiguration = ConfigurationReader.parseConfiguration(configFilePath);
} else {
ExecLoggers.CONSOLE_RAW.error("Configuration not provided through stdin or via file path");
Console.Err.log("Configuration not provided through stdin or via file path");
return CommandLine.ExitCode.USAGE;
}
} catch (final PropertyBindingException e) {
val context = String.format("at line %d, column %d", e.getLocation().getLineNr(), e.getLocation().getColumnNr());
ExecLoggers.CONSOLE_RAW.error("* {}", deriveErrorMessage(context, e));
Console.Err.log("* %s", deriveErrorMessage(context, e));
return CommandLine.ExitCode.SOFTWARE;
} catch (final Exception e) {
ExecLoggers.CONSOLE_RAW.error("* {}", deriveErrorMessage("unknown", e));
Console.Err.log("* %s", deriveErrorMessage("unknown", e));
return CommandLine.ExitCode.SOFTWARE;
}
if (CollectionUtils.isEmpty(sourcehawkConfiguration.getConfigLocations()) && CollectionUtils.isEmpty(sourcehawkConfiguration.getFileProtocols())) {
ExecLoggers.CONSOLE_RAW.warn("There are no remote configurations or file protocols in your config file, scans may produce no results");
Console.Out.log("There are no remote configurations or file protocols in your config file, scans may produce no results");
}
val fileEnforcerErrors = compileFileEnforcerErrors(sourcehawkConfiguration.getFileProtocols());
if (fileEnforcerErrors.isEmpty()) {
ExecLoggers.CONSOLE_RAW.info("Congratulations, you have created a valid configuration file");
Console.Out.log("Congratulations, you have created a valid configuration file");
return CommandLine.ExitCode.OK;
}
fileEnforcerErrors.stream()
.map(fileEnforcerError -> String.format("* %s", fileEnforcerError))
.forEach(ExecLoggers.CONSOLE_RAW::error);
.forEach(Console.Err::log);
return CommandLine.ExitCode.SOFTWARE;
}

Expand Down
Loading

0 comments on commit 38030ac

Please sign in to comment.