Files
xrdp/scripts/install_astyle.sh
T
Koichiro Iwao b39c12f351 Update astyle to 3.4.12
as astyle 3.1 is no longer available in the latest FreeBSD.

Also, astyle upstream repository has been moved to GitLab. Switched git
to obtain astyle source.

https://gitlab.com/saalen/astyle
2024-02-08 15:34:17 +09:00

112 lines
2.5 KiB
Bash
Executable File

#!/bin/sh
# Script to install a version of astyle in ~/astyle.local/
#
# Used by CI builds
#
# Currently only supports git repos as sources
#
# Usage: /path/to/install_astyle.sh <astyle-git-repo> <version-tag>
INSTALL_ROOT=~/astyle.local
# ----------------------------------------------------------------------------
# U S A G E
# ----------------------------------------------------------------------------
usage()
{
echo "** Usage: $0 <git-repo> <version-tag>"
echo " e.g. $0 https://gitlab.com/saalen/astyle.git 3.4.12"
} >&2
# ----------------------------------------------------------------------------
# C A L L _ M A K E
#
# Calls make with the specified parameters, but only displays the error
# log if it fails
# ----------------------------------------------------------------------------
call_make()
{
# Disable set -e, if active
set_entry_opts=`set +o`
set +e
status=1
log=`mktemp /tmp/astyle-log.XXXXXXXXXX`
if [ -n "$log" ]; then
make "$@" >"$log" 2>&1
status=$?
if [ $status -ne 0 ]; then
cat "$log" >&2
fi
rm "$log"
fi
# Re-enable `set -e` if active before
$set_entry_opts
return $status
}
# ----------------------------------------------------------------------------
# M A I N
# ----------------------------------------------------------------------------
if [ $# -ne 2 ]; then
usage
exit 1
fi
REPO_URL="$1"
ASTYLE_VER="$2"
# Already installed?
exe=$INSTALL_ROOT/$ASTYLE_VER/usr/bin/astyle
if [ -x "$exe" ]; then
echo "astyle version $ASTYLE_VER is already installed at $exe" >&2
exit 0
fi
workdir=`mktemp -d /tmp/astyle.XXXXXXXXXX`
if [ -z "$workdir" ]; then
echo "** Unable to create temporary working directory" 2>&1
exit 1
fi
# Use a sub-process for the next bit to restrict the scope of 'set -e'
(
set -e ; # Exit sub-process on first error
# Put everything in this directory
FILESDIR=$INSTALL_ROOT/$ASTYLE_VER
git clone --sparse ${REPO_URL} "$workdir"
cd "$workdir"
git sparse-checkout set AStyle
git checkout tags/${ASTYLE_VER}
cd "AStyle"
make_args="DESTDIR=$FILESDIR"
echo "Creating Makefiles..."
cmake .
echo "Making astyle..."
call_make $make_args
echo "Installing astyle..."
mkdir -p "$FILESDIR"
call_make install $make_args
# make install DESTDIR=~/astyle.local/3.1
)
status=$?
if [ $status -eq 0 ]; then
rm -rf "$workdir"
else
"** Script failed. Work dir is $workdir" >&2
fi
exit $status