#!/bin/bash

#
# 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.
#

THRIFT_VERSION=0.13.0

function GenThriftTool() {
    set -e
    wget --progress=dot:giga https://archive.apache.org/dist/thrift/${THRIFT_VERSION}/thrift-${THRIFT_VERSION}.tar.gz -O thrift-${THRIFT_VERSION}.tar.gz
    tar xzf thrift-${THRIFT_VERSION}.tar.gz
    pushd thrift-${THRIFT_VERSION}
    ./bootstrap.sh
    ./configure --enable-libs=no
    make -j$(($(nproc)/2+1))
    make install
    popd
    rm -rf thrift-${THRIFT_VERSION} thrift-${THRIFT_VERSION}.tar.gz
    set +e
}

which thrift
if [ $? -ne 0 ]; then
    echo "ERROR: not found thrift, try to get it"
    GenThriftTool
fi

if ! thrift -version | grep "${THRIFT_VERSION}" ; then
    echo "ERROR: thrift version should be ${THRIFT_VERSION}, try to update"
    GenThriftTool

    if ! thrift -version | grep "${THRIFT_VERSION}" ; then
        echo "ERROR: thrift version should be ${THRIFT_VERSION}, please manual fix it"
        exit 1
    fi
fi

echo "done"
