Files
pgadmin4/pkg/src/build.sh
T
2017-07-11 09:23:57 +01:00

100 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2017, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
#########################################################################
# Runtime checks
if [ ! -d runtime -a ! -d web ]; then
echo This script must be run from the top-level directory of the source tree.
exit 1
fi
if [ ! -d .git -a ! -f .git/config ]; then
echo This script must be run from a git checkout of the source tree.
exit 1
fi
# Get the required package info
APP_RELEASE=`grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g'`
APP_REVISION=`grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g'`
APP_NAME=`grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //'`
APP_LONG_VERSION=$APP_RELEASE.$APP_REVISION
APP_SHORT_VERSION=`echo $APP_LONG_VERSION | cut -d . -f1,2`
APP_SUFFIX=`grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g"`
if [ ! -z $APP_SUFFIX ]; then
export APP_LONG_VERSION=$APP_LONG_VERSION-$APP_SUFFIX
fi
TARBALL_NAME=`echo $APP_NAME-$APP_LONG_VERSION | sed 's/ //g' | awk '{print tolower($0)}'`
DOC_TARBALL_NAME=`echo $APP_NAME-$APP_LONG_VERSION-docs | sed 's/ //g' | awk '{print tolower($0)}'`
# Output basic details to show we're working
echo Building tarballs for $APP_NAME version $APP_LONG_VERSION...
# Create/clearout the build directory
echo Creating/cleaning required directories...
if [ ! -d src-build ]; then
mkdir src-build
fi
if [ -d src-build/$TARBALL_NAME ]; then
rm -rf src-build/$TARBALL_NAME
fi
mkdir src-build/$TARBALL_NAME
# Create the output directory if not present
if [ ! -d dist ]; then
mkdir dist
fi
if [ -f dist/$TARBALL_NAME.tar.gz ]; then
rm -f dist/$TARBALL_NAME.tar.gz
fi
if [ -f dist/$DOC_TARBALL_NAME.tar.gz ]; then
rm -f dist/$DOC_TARBALL_NAME.tar.gz
fi
# Build the clean tree
for FILE in `git ls-files`
do
echo Adding $FILE
# We use tar here to preserve the path, as Mac (for example) doesn't support cp --parents
tar cf - $FILE | (cd src-build/$TARBALL_NAME; tar xf -)
done
pushd web
yarn install
yarn run bundle
for FILE in `ls -d pgAdmin/static/js/generated/*`
do
echo Adding $FILE
tar cf - $FILE | (cd ../src-build/$TARBALL_NAME/web; tar xf -)
done
popd
# Create the tarball
echo Creating tarball...
cd src-build
tar zcvf ../dist/$TARBALL_NAME.tar.gz $TARBALL_NAME
cd ..
# Create the docs
echo Creating docs...
cd src-build/$TARBALL_NAME/docs/en_US
make -f Makefile.sphinx html
cd _build
mv html $DOC_TARBALL_NAME
tar zcvf ../../../../../dist/$DOC_TARBALL_NAME.tar.gz $DOC_TARBALL_NAME
cd ../../../../../
# Fin!
echo Created tarball dist/$TARBALL_NAME.tar.gz and dist/$DOC_TARBALL_NAME.tar.gz