<?xml version="1.0" encoding="UTF-8"?>
<!--

    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 License for the
    specific language governing permissions and limitations
    under the License.

-->
<assembly>
    <id>datanode-bin</id>
    <formats>
        <format>dir</format>
        <format>zip</format>
    </formats>
    <baseDirectory>apache-iotdb-${project.version}-server-bin</baseDirectory>
    <dependencySets>
        <dependencySet>
            <includes>
                <include>*:iotdb-server:zip:*</include>
                <include>*:iotdb-cli:zip:*</include>
            </includes>
            <outputDirectory>${file.separator}</outputDirectory>
            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
            <unpack>true</unpack>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <!--        <fileSet>-->
        <!--            <outputDirectory>conf</outputDirectory>-->
        <!--            <directory>${project.basedir}/../server/src/assembly/resources/conf</directory>-->
        <!--        </fileSet>-->
        <fileSet>
            <outputDirectory>conf</outputDirectory>
            <directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/conf</directory>
        </fileSet>
        <fileSet>
            <outputDirectory>sbin</outputDirectory>
            <directory>${project.basedir}/../iotdb-core/datanode/src/assembly/resources/sbin</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>sbin</outputDirectory>
            <directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/sbin</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>tools</outputDirectory>
            <directory>${project.basedir}/../iotdb-core/datanode/src/assembly/resources/tools</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>sbin</outputDirectory>
            <directory>${project.basedir}/../iotdb-client/cli/src/assembly/resources/sbin</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>tools</outputDirectory>
            <directory>${project.basedir}/../iotdb-client/cli/src/assembly/resources/tools</directory>
            <fileMode>0755</fileMode>
        </fileSet>
    </fileSets>
    <files>
        <file>
            <source>${project.basedir}/../iotdb-core/datanode/src/assembly/resources/conf/datanode-env.sh</source>
            <destName>conf/datanode-env.sh</destName>
            <fileMode>0755</fileMode>
        </file>
    </files>
    <componentDescriptors>
        <componentDescriptor>common-files.xml</componentDescriptor>
    </componentDescriptors>
</assembly>
