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

# If we are building from within the nanoarrow repo, bootstrap.R will (1)
# exist and (2) perform the necessary vendoring steps
if [ -f bootstrap.R ]; then
  $R_HOME/bin/Rscript bootstrap.R
fi

if [ -f "src/nanoarrow.h" ] && [ -f "src/nanoarrow.c" ]; then
  echo "Found vendored nanoarrow"
  exit 0
fi

# We have a situation where the package has been built via R CMD build
# but there is no vendored nanoarrow. This occurs with
# remotes::install_github() with the default arguments. In this case, pull
# the latest bundled version from GitHub. To ensure commit-level consistency,
# use remotes::install_github(build = FALSE) (which will run cmake to get
# a fresh bundle with a specific commit).
curl -L https://github.com/apache/arrow-nanoarrow/raw/main/dist/nanoarrow.h \
  --output src/nanoarrow.h --silent
curl -L https://github.com/apache/arrow-nanoarrow/raw/main/dist/nanoarrow.c \
  --output src/nanoarrow.c --silent

if [ -f "src/nanoarrow.h" ] && [ -f "src/nanoarrow.c" ]; then
  echo "Fetched bundled nanoarrow from https://github.com/apache/arrow-nanoarrow/tree/main/dist"
  exit 0
fi

echo "Vendored src/nanoarrow.h and/or src/nanoarrow.c are missing"
echo "This source tarball was built incorrectly."
exit 1
