<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (C) 2012, the original authors
  ~
  ~  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.
  -->

<assembly>
    <id>jclouds-cli</id>

    <formats>
        <format>tar.gz</format>
    </formats>

    <fileSets>
        <!-- Strip the Karaf distribution -->
        <fileSet>
            <directory>target/dependencies/unix/apache-karaf-${karaf.version}</directory>
            <outputDirectory>/</outputDirectory>
            <excludes>
                <exclude>**/demos/**</exclude>
                <exclude>lib/karaf-version.jar</exclude>
                <exclude>bin/**</exclude>
                <exclude>etc/org.apache.karaf.features.cfg</exclude>
                <exclude>etc/org.apache.karaf.features.repos.cfg</exclude>
                <exclude>etc/users.properties</exclude>
                <exclude>etc/custom.properties</exclude>
                <exclude>etc/startup.properties</exclude>
                <exclude>etc/shell.init.script</exclude>
                <exclude>etc/org.apache.karaf.management.cfg</exclude>
                <exclude>etc/org.apache.karaf.shell.cfg</exclude>
                <exclude>etc/org.apache.karaf.jaas.cfg</exclude>
                <exclude>readme.txt</exclude>
                <exclude>LICENSE</exclude>
                <exclude>NOTICE</exclude>
                <exclude>README</exclude>
                <exclude>RELEASE-NOTES</exclude>
                <exclude>karaf-manual*</exclude>
                <!-- further exclude bundles -->
                <exclude>system/org/apache/karaf/diagnostic/**</exclude>
                <exclude>system/org/apache/karaf/management/**</exclude>
                <exclude>system/org/apache/aries/jmx/**</exclude>
                <exclude>system/org/eclipse/**</exclude>
            </excludes>
        </fileSet>

        <!-- Copy over bin/* scripts separately to get the correct file mode -->
        <fileSet>
            <directory>target/dependencies/unix/apache-karaf-${karaf.version}</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>bin/*</include>
            </includes>
            <excludes>
                <exclude>bin/shell</exclude>
                <exclude>bin/karaf</exclude>
                <exclude>bin/start</exclude>
                <exclude>bin/stop</exclude>
                <exclude>bin/admin</exclude>
            </excludes>
            <fileMode>0755</fileMode>
        </fileSet>

        <!-- Copy over resources -->
        <fileSet>
            <directory>target/classes/etc</directory>
            <outputDirectory>/etc/</outputDirectory>
            <includes>
                <include>*.*</include>
            </includes>
            <lineEnding>unix</lineEnding>
            <fileMode>0644</fileMode>
        </fileSet>

        <!-- Copy over resources -->
        <fileSet>
            <directory>target/classes/unix/bin</directory>
            <outputDirectory>/bin/</outputDirectory>
            <includes>
                <include>**</include>
            </includes>
            <lineEnding>unix</lineEnding>
            <fileMode>0755</fileMode>
        </fileSet>

        <!-- Add jclouds features to system repository -->
        <fileSet>
            <outputDirectory>system</outputDirectory>
            <directory>target/features-repo</directory>
        </fileSet>
    </fileSets>

    <files>
        <file>
            <source>${basedir}/target/dependencies/unix/apache-karaf-${karaf.version}/bin/karaf</source>
            <outputDirectory>/bin/</outputDirectory>
            <destName>jclouds-cli</destName>
            <fileMode>0755</fileMode>
            <lineEnding>unix</lineEnding>
        </file>
    </files>

    <dependencySets>
        <dependencySet>
            <outputDirectory>/lib</outputDirectory>
            <outputFileNameMapping>jclouds-version.jar</outputFileNameMapping>
            <fileMode>0644</fileMode>
            <includes>
                <include>org.apache.jclouds.cli:branding</include>
            </includes>
            <useTransitiveDependencies>false</useTransitiveDependencies>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system/org/apache/jclouds/cli/runner/${project.version}/</outputDirectory>
            <fileMode>0644</fileMode>
            <includes>
                <include>org.apache.jclouds.cli:runner</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>lib/other/</outputDirectory>
            <fileMode>0644</fileMode>
            <includes>
                <include>org.slf4j:slf4j-api</include>
                <include>org.slf4j:slf4j-log4j12</include>
                <include>log4j:log4j</include>
            </includes>
        </dependencySet>
    </dependencySets>

</assembly>
