#!/usr/bin/env bash
#
#/**
# * Copyright 2007 The Apache Software Foundation
# *
# * 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.
# */

BASEDIR=$(dirname "$0")
DISTRIBUTEDLOG_ROOT="${BASEDIR}/.."

set -e
shopt -s dotglob

cd ${DISTRIBUTEDLOG_ROOT}

gitsha=`git rev-parse HEAD`

# clean the dist
find . -name lib | xargs rm -r
rm -rf dist/*

# create the layout
for module in distributedlog-service distributedlog-benchmark distributedlog-tutorials/distributedlog-basic distributedlog-tutorials/distributedlog-messaging; do
    mkdir -p dist/release/${module}/{bin,conf,lib}
done

# build the package
mvn clean install -Ptwitter-ostrich-provider -DskipTests

# build the distributedlog-service
cp -rf distributedlog-service/bin/* dist/release/distributedlog-service/bin
cp -rf distributedlog-service/conf/* dist/release/distributedlog-service/conf
cp -rf distributedlog-service/lib/* dist/release/distributedlog-service/lib
cp -rf distributedlog-service/target/distributedlog-service-*.jar dist/release/distributedlog-service
cp -rf vagrant dist/release/

# build the distributedlog-benchmark
cp -rf distributedlog-benchmark/bin/* dist/release/distributedlog-benchmark/bin
cp -rf distributedlog-benchmark/conf/* dist/release/distributedlog-benchmark/conf
cp -rf distributedlog-benchmark/lib/* dist/release/distributedlog-benchmark/lib
cp -rf distributedlog-benchmark/target/distributedlog-benchmark-*.jar dist/release/distributedlog-benchmark

# build the distributedlog-tutorial/basic
cp -rf distributedlog-tutorials/distributedlog-basic/bin/* dist/release/distributedlog-tutorials/distributedlog-basic/bin
cp -rf distributedlog-tutorials/distributedlog-basic/conf/* dist/release/distributedlog-tutorials/distributedlog-basic/conf
cp -rf distributedlog-tutorials/distributedlog-basic/lib/* dist/release/distributedlog-tutorials/distributedlog-basic/lib
cp -rf distributedlog-tutorials/distributedlog-basic/target/distributedlog-basic-*.jar dist/release/distributedlog-tutorials/distributedlog-basic

# build the distributedlog-tutorial/messaging
cp -rf distributedlog-tutorials/distributedlog-messaging/bin/* dist/release/distributedlog-tutorials/distributedlog-messaging/bin
cp -rf distributedlog-tutorials/distributedlog-messaging/conf/* dist/release/distributedlog-tutorials/distributedlog-messaging/conf
cp -rf distributedlog-tutorials/distributedlog-messaging/lib/* dist/release/distributedlog-tutorials/distributedlog-messaging/lib
cp -rf distributedlog-tutorials/distributedlog-messaging/target/distributedlog-messaging-*.jar dist/release/distributedlog-tutorials/distributedlog-messaging

# release
cd dist/release
zip -r distributedlog-all-${gitsha}.zip distributedlog-service distributedlog-benchmark distributedlog-tutorials > /dev/null
zip -r distributedlog-service-${gitsha}.zip distributedlog-service >/dev/null
zip -r distributedlog-benchmark-${gitsha}.zip distributedlog-benchmark >/dev/null
zip -r distributedlog-tutorials-${gitsha}.zip distributedlog-tutorials >/dev/null
