<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright 2017 Huawei Technologies Co., Ltd.

    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.
 -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.onap.cli</groupId>
        <artifactId>cli-deployment</artifactId>
        <version>2.0.0</version>
    </parent>

    <artifactId>cli-zip</artifactId>
    <name>cli/deployment/zip</name>
    <packaging>pom</packaging>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>open-cli-deployment</id>
                        <phase>package</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <source>
                                System.out.println("******** Going to make release zip ********")

                                deployFolder =
                                "${project.build.directory}/deployoutput"
                                deployUnzip =
                                "${project.build.directory}/deployunzip"
                                outfileName =
                                "${package.name}-${project.version}.zip"
                                ant.delete(dir: "${deployFolder}")
                                ant.mkdir(dir: "${deployFolder}")

                                ant.delete(dir: "${deployUnzip}")
                                ant.mkdir(dir: "${deployUnzip}")

                                ant.delete(dir: "${deployUnzip}/lib")
                                ant.mkdir(dir: "${deployUnzip}/lib")

                                ant.delete(dir: "${deployUnzip}/open-cli-schema")
                                ant.mkdir(dir: "${deployUnzip}/open-cli-schema")

                                ant.delete(dir: "${deployUnzip}/open-cli-sample")
                                ant.mkdir(dir: "${deployUnzip}/open-cli-sample")

                                ant.delete(dir: "${deployUnzip}/data")
                                ant.mkdir(dir: "${deployUnzip}/data")

                                ant.copy(todir: "${deployUnzip}") {
                                fileset(dir: "${basedir}/src/main/release"){
                                exclude(name: "**/.gitignore")
                                }
                                }

                                ant.copy(todir: "${deployUnzip}") {
                                fileset(file: "${basedir}/installer/install.sh")
                                }
                                ant.chmod(file: "${deployUnzip}/bin/oclip.sh", perm: "ugo+x")
                                ant.chmod(file: "${deployUnzip}/install.sh", perm: "ugo+x")

                                ant.copy(todir:
                                "${deployUnzip}/lib") {
                                fileset(file:
                                "${project.build.directory}/../../../main/target/cli-main-${project.version}.jar")
                                fileset(dir:
                                "${project.build.directory}/../../../main/target/lib/")
                                fileset(dir:
                                "${project.build.directory}/../../../products/target/lib/")
                                fileset(dir:
                                "${project.build.directory}/../../../profiles/target/lib/")
                                }
                                ant.copy(todir:
                                "${deployUnzip}/conf") {
                                fileset(file:
                                "${basedir}/src/main/release/conf/open-cli.properties")
                                }

                                ant.copy(todir:
                                "${deployUnzip}/conf") {
                                fileset(file:
                                "${basedir}/src/main/release/conf/log4j.properties")
                                }

                                ant.copy(todir:
                                "${deployUnzip}/docs") {
                                fileset(file:
                                "${project.build.directory}/../../../README.md")
                                }

                                ant.zip(destfile:
                                "${deployFolder}/${outfileName}") {
                                zipfileset(dir: "${deployUnzip}", excludes: "**/*.sh")
                                zipfileset(dir: "${deployUnzip}", includes: "**/*.sh", filemode: "755")
                                }
                                System.out.println("******** completed. ************")
                            </source>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>attach-artifacts</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <file>${project.build.directory}/deployoutput/${package.name}-${project.version}.zip</file>
                                    <type>zip</type>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>