#!/usr/bin/env bash

#
#    Copyright 2014-2016 Nest Labs Inc. All Rights Reserved.
#
#    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.
#

#
#    Description:
#      This file implements a script which, when run from a project
#      build directory (either disparate or colocated with the
#      source), will attempt to clean the build directory, rebootstrap
#      the package, and then rerun the configuration script for the
#      package with the provided arguments.
#
#      This script is particularly useful when you are changing the
#      configuration script and testing those changes.
#

srcdir=$(dirname "${0}")

# Try to bring the package build back to a pristine state.

if [[ -f config.status ]]; then
  make maintainer-clean || exit ${?}
fi

# Change directories to the package source and rebootstrap the package.

(cd "$srcdir" && ./bootstrap) && "$srcdir"/configure "${@}"
