Skip to content

Commit 39ceb35

Browse files
authored
Merge pull request #158 from bci-oss/157-add-version-switch
Add `--version` switch to bamm-cli
2 parents bdc2bd7 + 3208ff1 commit 39ceb35

15 files changed

+47
-13
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
<maven-clean-plugin-version>3.1.0</maven-clean-plugin-version>
109109
<maven-compiler-plugin-version>3.8.1</maven-compiler-plugin-version>
110110
<maven-javadoc-plugin-version>3.3.0</maven-javadoc-plugin-version>
111+
<maven-resources-plugin-version>3.2.0</maven-resources-plugin-version>
111112
<maven-source-plugin-version>2.2.1</maven-source-plugin-version>
112113
<maven-surefire-plugin-version>2.22.2</maven-surefire-plugin-version>
113114
<maven-surefire-report-plugin-version>2.22.2</maven-surefire-report-plugin-version>
@@ -398,6 +399,11 @@
398399
<build>
399400
<pluginManagement>
400401
<plugins>
402+
<plugin>
403+
<groupId>org.apache.maven.plugins</groupId>
404+
<artifactId>maven-resources-plugin</artifactId>
405+
<version>${maven-resources-plugin-version}</version>
406+
</plugin>
401407
<plugin>
402408
<groupId>org.apache.maven.plugins</groupId>
403409
<artifactId>maven-clean-plugin</artifactId>

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/AbstractCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
import io.openmanufacturing.sds.aspectmodel.urn.AspectModelUrn;
4343
import io.openmanufacturing.sds.aspectmodel.validation.report.ValidationReport;
4444
import io.openmanufacturing.sds.aspectmodel.validation.services.AspectModelValidator;
45-
import io.openmanufacturing.sds.exeption.CommandException;
45+
import io.openmanufacturing.sds.exception.CommandException;
4646
import io.vavr.CheckedFunction1;
4747
import io.vavr.control.Option;
4848
import io.vavr.control.Try;

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/BammCli.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
*/
1313
package io.openmanufacturing.sds;
1414

15+
import java.io.IOException;
16+
import java.io.InputStream;
17+
import java.util.Properties;
18+
1519
import org.fusesource.jansi.AnsiConsole;
1620

1721
import io.openmanufacturing.sds.aspect.AspectCommand;
@@ -34,6 +38,9 @@ public class BammCli extends AbstractCommand {
3438

3539
private final CommandLine commandLine = new CommandLine( this );
3640

41+
@CommandLine.Option( names = { "--version" }, description = "Show current version" )
42+
private boolean version;
43+
3744
public void run( final String... argv ) throws Exception {
3845
main( argv );
3946
}
@@ -55,8 +62,29 @@ protected String format( final String string ) {
5562
return commandLine.getColorScheme().ansi().string( string );
5663
}
5764

65+
private Properties loadProperties( final String filename ) {
66+
final Properties properties = new Properties();
67+
final InputStream propertiesResource = BammCli.class.getClassLoader().getResourceAsStream( filename );
68+
try {
69+
properties.load( propertiesResource );
70+
} catch ( final IOException exception ) {
71+
throw new RuntimeException( "Failed to load Properties: " + filename );
72+
}
73+
return properties;
74+
}
75+
5876
@Override
5977
public void run() {
78+
if ( version ) {
79+
final Properties applicationProperties = loadProperties( "application.properties" );
80+
final Properties gitProperties = loadProperties( "git.properties" );
81+
System.out.printf( "bamm-cli - %s%nVersion: %s%nBuild date: %s%nGit commit: %s%n",
82+
applicationProperties.get( "application.name" ),
83+
applicationProperties.get( "version" ),
84+
applicationProperties.get( "build.date" ),
85+
gitProperties.get( "git.commit.id" ) );
86+
System.exit( 0 );
87+
}
6088
System.out.println( commandLine.getHelp().fullSynopsis() );
6189
System.out.println( format( "Run @|bold " + commandLine.getCommandName() + " help|@ for help." ) );
6290
}

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/aspect/AspectCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
package io.openmanufacturing.sds.aspect;
1515

1616
import io.openmanufacturing.sds.AbstractCommand;
17-
import io.openmanufacturing.sds.exeption.SubCommandException;
17+
import io.openmanufacturing.sds.exception.SubCommandException;
1818
import picocli.CommandLine;
1919

2020
@CommandLine.Command( name = AspectCommand.COMMAND_NAME,

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/aspect/AspectToCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import io.openmanufacturing.sds.aspect.to.AspectToOpenapiCommand;
2424
import io.openmanufacturing.sds.aspect.to.AspectToPngCommand;
2525
import io.openmanufacturing.sds.aspect.to.AspectToSvgCommand;
26-
import io.openmanufacturing.sds.exeption.SubCommandException;
26+
import io.openmanufacturing.sds.exception.SubCommandException;
2727
import picocli.CommandLine;
2828

2929
@CommandLine.Command( name = AspectToCommand.COMMAND_NAME, description = "Transforms an Aspect Model into another format",

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/aspect/to/AspectToAasCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import io.openmanufacturing.sds.AbstractCommand;
1919
import io.openmanufacturing.sds.aspect.AspectToCommand;
2020
import io.openmanufacturing.sds.aspectmodel.aas.AspectModelAASGenerator;
21-
import io.openmanufacturing.sds.exeption.CommandException;
21+
import io.openmanufacturing.sds.exception.CommandException;
2222
import io.openmanufacturing.sds.metamodel.Aspect;
2323
import io.openmanufacturing.sds.metamodel.loader.AspectModelLoader;
2424
import picocli.CommandLine;

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/aspect/to/AspectToDotCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import io.openmanufacturing.sds.AbstractCommand;
1919
import io.openmanufacturing.sds.aspect.AspectToCommand;
2020
import io.openmanufacturing.sds.aspectmodel.generator.diagram.AspectModelDiagramGenerator;
21-
import io.openmanufacturing.sds.exeption.CommandException;
21+
import io.openmanufacturing.sds.exception.CommandException;
2222
import picocli.CommandLine;
2323

2424
@CommandLine.Command( name = AspectToDotCommand.COMMAND_NAME,

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/aspect/to/AspectToHtmlCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import io.openmanufacturing.sds.AbstractCommand;
2424
import io.openmanufacturing.sds.aspect.AspectToCommand;
2525
import io.openmanufacturing.sds.aspectmodel.generator.docu.AspectModelDocumentationGenerator;
26-
import io.openmanufacturing.sds.exeption.CommandException;
26+
import io.openmanufacturing.sds.exception.CommandException;
2727
import picocli.CommandLine;
2828

2929
@CommandLine.Command( name = AspectToHtmlCommand.COMMAND_NAME,

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/aspect/to/AspectToJsonCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import io.openmanufacturing.sds.AbstractCommand;
1919
import io.openmanufacturing.sds.aspect.AspectToCommand;
2020
import io.openmanufacturing.sds.aspectmodel.generator.json.AspectModelJsonPayloadGenerator;
21-
import io.openmanufacturing.sds.exeption.CommandException;
21+
import io.openmanufacturing.sds.exception.CommandException;
2222
import picocli.CommandLine;
2323

2424
@CommandLine.Command( name = AspectToJsonCommand.COMMAND_NAME,

tools/bamm-cli/src/main/java/io/openmanufacturing/sds/aspect/to/AspectToJsonSchemaCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import io.openmanufacturing.sds.AbstractCommand;
2222
import io.openmanufacturing.sds.aspect.AspectToCommand;
2323
import io.openmanufacturing.sds.aspectmodel.generator.jsonschema.AspectModelJsonSchemaGenerator;
24-
import io.openmanufacturing.sds.exeption.CommandException;
24+
import io.openmanufacturing.sds.exception.CommandException;
2525
import io.openmanufacturing.sds.metamodel.Aspect;
2626
import io.openmanufacturing.sds.metamodel.loader.AspectModelLoader;
2727
import picocli.CommandLine;

0 commit comments

Comments
 (0)