summaryrefslogtreecommitdiffstats
path: root/mod2/helm-generator/helmchartgenerator-cli/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/HelmChartGeneratorApplication.java
diff options
context:
space:
mode:
Diffstat (limited to 'mod2/helm-generator/helmchartgenerator-cli/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/HelmChartGeneratorApplication.java')
-rw-r--r--mod2/helm-generator/helmchartgenerator-cli/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/HelmChartGeneratorApplication.java97
1 files changed, 97 insertions, 0 deletions
diff --git a/mod2/helm-generator/helmchartgenerator-cli/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/HelmChartGeneratorApplication.java b/mod2/helm-generator/helmchartgenerator-cli/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/HelmChartGeneratorApplication.java
new file mode 100644
index 0000000..617947f
--- /dev/null
+++ b/mod2/helm-generator/helmchartgenerator-cli/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/HelmChartGeneratorApplication.java
@@ -0,0 +1,97 @@
+/*
+ * # ============LICENSE_START=======================================================
+ * # Copyright (c) 2021 AT&T Intellectual Property. All rights reserved.
+ * # ================================================================================
+ * # Licensed under the Apache License, Version 2.0 (the "License");
+ * # you may not use this file except in compliance with the License.
+ * # You may obtain a copy of the License at
+ * #
+ * # http://www.apache.org/licenses/LICENSE-2.0
+ * #
+ * # Unless required by applicable law or agreed to in writing, software
+ * # distributed under the License is distributed on an "AS IS" BASIS,
+ * # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * # See the License for the specific language governing permissions and
+ * # limitations under the License.
+ * # ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcaegen2.platform.helmchartgenerator;
+
+import lombok.extern.slf4j.Slf4j;
+import org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder.ChartBuilder;
+import org.onap.dcaegen2.platform.helmchartgenerator.distribution.ChartDistributor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.core.io.ClassPathResource;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Main class to run the application.
+ * @author Dhrumin Desai
+ */
+@SpringBootApplication
+@Slf4j
+public class HelmChartGeneratorApplication implements CommandLineRunner {
+
+ @Autowired
+ private final ChartBuilder builder;
+
+ @Autowired
+ private final ChartDistributor distributor;
+
+ public HelmChartGeneratorApplication(ChartBuilder builder, ChartDistributor distributor) {
+ this.builder = builder;
+ this.distributor = distributor;
+ }
+
+ public static void main(String[] args) {
+ SpringApplication.run(HelmChartGeneratorApplication.class, args);
+ }
+
+ @Override
+ public void run(String... args) throws Exception {
+ List<String> argList = new ArrayList<>(Arrays.asList(args));
+ boolean isDistribute = false;
+ if(argList.contains("--help") || argList.size() < 3){
+ printUsage();
+ return;
+ }
+ if(argList.contains("--distribute")){
+ isDistribute = true;
+ argList.remove("--distribute");
+ }
+
+ log.info("STARTED HELM GENERATION:");
+ final File chartPackage = builder.build(argList.get(0), argList.get(1), argList.get(2),
+ getSpecSchemaLocation(argList));
+ if(isDistribute) {
+ log.info("Distributing..");
+ distributor.distribute(chartPackage);
+ }
+ }
+
+ private String getSpecSchemaLocation(List<String> argList) {
+ String specSchemaLocation;
+ try {
+ specSchemaLocation = argList.get(3);
+ }
+ catch (Exception e) {
+ specSchemaLocation = "";
+ }
+ return specSchemaLocation;
+ }
+
+ private void printUsage() throws IOException {
+ InputStream inputStream = new ClassPathResource("Usage.txt").getInputStream();
+ log.info(new String(inputStream.readAllBytes()));
+ }
+}