blob: 51429a8c2e9a1d7388c77f9472653e00e7115909 [file] [log] [blame]
#!/usr/bin/env 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.
# A script to build the Celix site (based on Hugo)
# Input parameters
GIT_REMOTE=$1
if [[ -z "${GIT_REMOTE}" ]]; then
echo "Git remote is not specified!"
echo ""
echo "Usage:"
echo " ./publish.sh <remote>"
echo " e.g."
echo " ./publish.sh origin"
exit 1
fi
# specify source and site branches
SOURCE="master"
SITE="asf-site"
# Make sure the SOURCE branch is active
git checkout ${SOURCE} > /dev/null 2>&1
# Get the latest commit SHA in SOURCE branch
last_SHA=( $(git log -n 1 --pretty=format:"%H") )
# Create a temporary folder
tmp_dir=`mktemp -d`
out_dir=${tmp_dir}/content
mkdir -p ${out_dir}
# Build the site to our temporary folder
hugo --destination ${out_dir} > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Hugo build successful"
else
echo "Hugo build failed"
exit 1
fi
# Switch to the SITE branch
git checkout ${SITE} > /dev/null 2>&1
# Remove the current contents of the SITE branch and replace them with the contents of the temp folder
current_dir=${PWD}
rm -rf ${current_dir}/content
git rm -r --cached content/* > /dev/null 2>&1
mkdir -p ${current_dir}/content
cp -rT ${tmp_dir}/* ${current_dir}/content
# Commit the changes to the SITE branch
message="Updated site from ${SOURCE} (${last_SHA})"
git add -A
git commit -m "${message}" > /dev/null 2>&1
# Delete the temporary folder
rm -rf ${tmp_dir}
# Push the SOURCE to the server
git push -u ${GIT_REMOTE} ${SOURCE} > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Push ${SOURCE} successful"
else
echo "Push ${SOURCE} failed"
fi
# Push the SITE to the server
git push -u ${GIT_REMOTE} ${SITE} > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Push ${SITE} successful"
else
echo "Push ${SITE} failed"
fi
# Switch back to SOURCE branch
git checkout ${SOURCE} > /dev/null 2>&1