diff options
Diffstat (limited to 'mod2/helm-generator/helmchartgenerator-cli/src/main/java/org/onap/dcaegen2/platform')
-rw-r--r-- | mod2/helm-generator/helmchartgenerator-cli/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/HelmChartGeneratorApplication.java | 97 |
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())); + } +} |