<?xml version="1.0"?>
<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/maven-v4_0_0.xsd">
  <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You 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 Licenseam for the specific language governing permissions and
   limitations under the License.
-->
  <parent>
    <groupId>org.apache.ambari</groupId>
    <artifactId>ambari-shell</artifactId>
    <version>2.0.2.0</version>
    <relativePath>../../ambari-shell</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.ambari</groupId>
  <artifactId>ambari-python-shell</artifactId>
  <packaging>pom</packaging>
  <version>2.0.2.0</version>
  <name>Ambari Python Shell</name>
  <description>Ambari Python Shell</description>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <final.name>${project.artifactId}-${project.version}</final.name>
    <package.release>1</package.release>
    <package.prefix>/usr</package.prefix>
    <package.log.dir>/var/log/ambari-shell</package.log.dir>
    <package.pid.dir>/var/run/ambari-shell</package.pid.dir>
    <skipTests>false</skipTests>
    <install.dir>/usr/lib/python2.6/site-packages/ambari_shell</install.dir>
    <lib.dir>/usr/lib/ambari-shell/lib</lib.dir>
    <python.ver>python &gt;= 2.6</python.ver>
    <deb.python.ver>python (&gt;= 2.6)</deb.python.ver>
    <deb.architecture>amd64</deb.architecture>
    <deb.dependency.list>openssl, zlibc, ${deb.python.ver}</deb.dependency.list>
  </properties>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <tarLongFileMode>gnu</tarLongFileMode>
          <descriptors>
            <descriptor>src/packages/tarball/all.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>build-tarball</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2</version>
        <executions>
          <execution>
            <configuration>
              <executable>${executable.python}</executable>
              <workingDirectory>target/ambari-python-shell-${project.version}</workingDirectory>
              <arguments>
                <argument>${project.basedir}/src/main/python/setup.py</argument>
                <argument>clean</argument>
                <argument>bdist_dumb</argument>
              </arguments>
              <environmentVariables>
                <PYTHONPATH>target/python-client-${project.version}:$PYTHONPATH</PYTHONPATH>
              </environmentVariables>
            </configuration>
            <id>python-package</id>
            <phase>package</phase>
            <goals>
              <goal>exec</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rpm-maven-plugin</artifactId>
        <version>2.0.1</version>
        <executions>
          <execution>
            <phase>none</phase>
            <goals>
              <goal>rpm</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <copyright>2012, Apache Software Foundation</copyright>
          <group>Development</group>
          <description>Maven Recipe: RPM Package.</description>
          <requires>
            <require>openssl</require>
            <require>zlib</require>
            <require>${python.ver}</require>
          </requires>
          <needarch>x86_64</needarch>
          <autoRequires>false</autoRequires>
          <mappings>
             <mapping>
              <directory>/etc/ambari-shell/conf</directory>
              <filemode>755</filemode>
              <username>root</username>
              <groupname>root</groupname>
              <sources>
                <source>
                  <location>conf/unix/ambari-shell.ini</location>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>/usr/sbin</directory>
              <filemode>755</filemode>
              <username>root</username>
              <groupname>root</groupname>
              <directoryIncluded>false</directoryIncluded>
              <sources>
                <source>
                  <location>conf/unix/ambari-shell</location>
                  <filter>true</filter>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>${package.log.dir}</directory>
              <filemode>755</filemode>
              <username>root</username>
              <groupname>root</groupname>
            </mapping>
            <mapping>
              <directory>${install.dir}</directory>
              <sources>
                <source>
                  <location>${project.build.directory}/${project.artifactId}-${project.version}/ambari_shell</location>
                </source>
              </sources>
            </mapping>
          </mappings>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>src/examples/*</exclude>
            <exclude>src/test/python/dummy*.txt</exclude>
            <exclude>src/main/python/ambari_client/imports.txt</exclude>
            <exclude>src/main/puppet/modules/stdlib/**</exclude>
            <exclude>**/*.erb</exclude>
            <exclude>**/*.json</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <phase>test</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.vafer</groupId>
        <artifactId>jdeb</artifactId>
        <version>1.0.1</version>
        <executions>
          <execution>
            <phase>none</phase>
            <goals>
              <goal>jdeb</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <controlDir>${basedir}/src/main/package/deb/control</controlDir>
          <deb>${basedir}/target/${artifactId}_${package-version}-${package-release}.deb</deb>
          <dataSet>
            <data>
              <src>${project.build.directory}/${project.artifactId}-${project.version}/ambari_shell</src>
              <type>directory</type>
              <mapper>
                <type>perm</type>
                <prefix>${install.dir}</prefix>
              </mapper>
            </data>
          </dataSet>
        </configuration>
      </plugin>
    </plugins>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh-external</artifactId>
      </extension>
    </extensions>
  </build>
  <profiles>
    <profile>
      <id>windows</id>
        <activation>
        <os>
          <family>win</family>
        </os>
        </activation>
          <properties>
            <envClassifier>win</envClassifier>
            <executable.python>python</executable.python>
          </properties>
      </profile>
      <profile>
        <id>linux</id>
        <activation>
          <os>
            <family>unix</family>
          </os>
        </activation>
        <properties>
          <envClassifier>linux</envClassifier>
          <executable.python>${project.basedir}/../../ambari-common/src/main/unix/ambari-python-wrap</executable.python>
        </properties>
      </profile>
  </profiles>
</project>
