Created
May 1, 2019 12:51
-
-
Save boye/386698d7232ab93073e3147698330e88 to your computer and use it in GitHub Desktop.
Simple bash script that makes the maintenance of Be Informed projects easier
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
if [ ! $# == 1 ] ; then | |
echo "Usage: $0 mts (project/branch)" | |
exit 1 | |
fi | |
# Root base dir | |
BASEDIR="/Users/username/Development/beinformed" | |
# Base directory for Be Informed workspaces | |
WORKSPACEDIR="${BASEDIR}/workspace" | |
# Directory to store configuration files | |
CONFIGDIR="${WORKSPACEDIR}/bi-config" | |
# License files | |
AMSLICENSE="${CONFIGDIR}/license_file.lic" | |
# Default memory settings - used when not specified in cases below | |
XMS=1g | |
XMX=1g | |
# Studio configurations - also change -o option when adding/removing | |
case $1 in | |
opo-abb) | |
APPVER="3.16.0.2" | |
PORT="18753" | |
XMX=2g | |
;; | |
opo-lh) | |
APPVER="3.16.0.2" | |
PORT="18752" | |
XMX=2g | |
;; | |
opo-ogp) | |
APPVER="3.16.0.2" | |
PORT="18751" | |
XMX=2g | |
;; | |
opo-ogp-3162) | |
APPVER="3.16.2.0" | |
PORT="19751" | |
XMX=2g | |
;; | |
opo-lh-3162) | |
APPVER="3.16.2.0" | |
PORT="19752" | |
XMX=2g | |
;; | |
opo-abb-3162) | |
APPVER="3.16.2.0" | |
PORT="19753" | |
XMX=2g | |
;; | |
opo-ib-3162) | |
APPVER="3.16.2.0" | |
PORT="19754" | |
XMX=2g | |
;; | |
-o) | |
echo "opo-abb opo-lh opo-ogp opo-ogp-3162 opo-lh-3162 opo-abb-3162 opo-ib-3162" | |
exit | |
;; | |
*) | |
echo "Project not found" | |
exit 1 | |
;; | |
esac | |
# Which studio? | |
STUDIOABBR="AMS" | |
if [[ "${APPVER}" == "4."* ]]; then | |
STUDIOABBR="BMS" | |
fi | |
# Studio app name change from Be Informed Studio to Be Informed AMS since 3.16.0.0 | |
STUDIOAPPNAME="Be Informed Studio" | |
if [[ "${APPVER}" == "3.16."* ]] || [[ "${APPVER}" == "19."* ]]; then | |
STUDIOAPPNAME="Be Informed AMS" | |
fi | |
# Studio application directories | |
APPDIR="${BASEDIR}/studio/Be Informed ${STUDIOABBR} ${APPVER}" | |
APPCONTENTSDIR="${APPDIR}/${STUDIOAPPNAME}.app/Contents/MacOS" | |
# Custom configuration | |
DATADIR="${WORKSPACEDIR}/${1}" | |
CONFIG="${CONFIGDIR}/${1}-studio.ini" | |
PREFSDIR="${CONFIGDIR}/${1}" | |
DEPLOYMENTPROFILE="${CONFIGDIR}/${1}-deploymentprofile.xml" | |
# Eclipse configuration | |
ECLIPSEPLUGINSDIR="${DATADIR}/.metadata/.plugins" | |
ECLIPSEPREFSDIR="${ECLIPSEPLUGINSDIR}/org.eclipse.core.runtime/.settings" | |
ECLIPSEPREFSFILE="${ECLIPSEPREFSDIR}/org.eclipse.ui.ide.prefs" | |
ECLIPSEBEINFORMEDPREFSFILE="${ECLIPSEPREFSDIR}/nl.beinformed.bi.studio.tool.prefs" | |
ECLIPSESVNCOREPREFSFILE="${ECLIPSEPREFSDIR}/org.eclipse.team.svn.core.prefs" | |
ECLIPSESVNUIPREFSFILE="${ECLIPSEPREFSDIR}/org.eclipse.team.svn.ui.prefs" | |
ECLIPSEDEPLOYMENTPROFILEDIR="${ECLIPSEPLUGINSDIR}/nl.beinformed.bi.deployment.profile" | |
ECLIPSEDEPLOYMENTPROFILE="${ECLIPSEDEPLOYMENTPROFILEDIR}/profiles.xml" | |
# Copy studio ini when missing | |
if [ ! -f "${CONFIG}" ] ; then | |
if [ -f "${APPDIR}/${STUDIOAPPNAME}.ini" ] ; then | |
cp "${APPDIR}/${STUDIOAPPNAME}.ini" "${CONFIG}" | |
elif [ -f "${APPCONTENTSDIR}/${STUDIOAPPNAME}.ini" ] ; then | |
cp "${APPCONTENTSDIR}/${STUDIOAPPNAME}.ini" "${CONFIG}" | |
fi | |
# When copied, add config | |
if [ -f "${CONFIG}" ] ; then | |
sed -Ei '' "s/^(-Xms).*$/\1${XMS}/g" "${CONFIG}" | |
sed -Ei '' "s/^(-Xmx).*$/\1${XMX}/g" "${CONFIG}" | |
if [ "${STUDIOABBR}" == "AMS" ] ; then | |
echo "-Djetty.port=${PORT}" >> "${CONFIG}" | |
else | |
sed -Ei '' "s/^(-Dorg\.osgi\.service\.http\.port=)[0-9]+$/\1${PORT}/g" "${CONFIG}" | |
fi | |
fi | |
else | |
# Update settings | |
sed -Ei '' "s/^(-Xms).*$/\1${XMS}/g" "${CONFIG}" | |
sed -Ei '' "s/^(-Xmx).*$/\1${XMX}/g" "${CONFIG}" | |
if [ "${STUDIOABBR}" == "AMS" ] ; then | |
sed -Ei '' "s/^(-Djetty\.port=)[0-9]+$/\1${PORT}/g" "${CONFIG}" | |
else | |
sed -Ei '' "s/^(-Dorg\.osgi\.service\.http\.port=)[0-9]+$/\1${PORT}/g" "${CONFIG}" | |
fi | |
fi | |
# Create Eclipse preference dir in workspace | |
if [ ! -d "${ECLIPSEPREFSDIR}" ] ; then | |
mkdir -p "${ECLIPSEPREFSDIR}" | |
# Copy existing Eclipse preferences if available | |
if [ -d "${PREFSDIR}" ] ; then | |
cp "${PREFSDIR}/"* "${ECLIPSEPREFSDIR}" | |
fi | |
fi | |
# Copy/update Eclipse header | |
ECLIPSEHEADER="BI ${APPVER} - ${1} - localhost:${PORT}" | |
if [ ! -f "${ECLIPSEPREFSFILE}" ] ; then | |
echo "PROBLEMS_FILTERS_MIGRATE=true" > "${ECLIPSEPREFSFILE}" | |
echo "WORKSPACE_NAME=${ECLIPSEHEADER}" >> "${ECLIPSEPREFSFILE}" | |
echo "eclipse.preferences.version=1" >> "${ECLIPSEPREFSFILE}" | |
else | |
sed -Ei '' "s/^(WORKSPACE_NAME=).*$/\1${ECLIPSEHEADER}/g" "${ECLIPSEPREFSFILE}" | |
fi | |
if [ "${STUDIOABBR}" == "AMS" ] ; then | |
# Create Be Informed license reference for new workspaces | |
if [ ! -f "${ECLIPSEBEINFORMEDPREFSFILE}" ] ; then | |
echo "LICENSE_ACCEPTED_DATE=21-06-2018" > "${ECLIPSEBEINFORMEDPREFSFILE}" | |
echo "LICENSE_FILE_PATH=${AMSLICENSE}" >> "${ECLIPSEBEINFORMEDPREFSFILE}" | |
echo "eclipse.preferences.version=1" >> "${ECLIPSEBEINFORMEDPREFSFILE}" | |
fi | |
# Copy deployment profile for new workspaces | |
if [ -f "${DEPLOYMENTPROFILE}" ] ; then | |
if [ ! -d "${ECLIPSEDEPLOYMENTPROFILEDIR}" ] ; then | |
mkdir -p "${ECLIPSEDEPLOYMENTPROFILEDIR}" | |
fi | |
# Alleen overschrijven indien file niet bestaat | |
if [ ! -f "${ECLIPSEDEPLOYMENTPROFILE}" ] ; then | |
cp "${DEPLOYMENTPROFILE}" "${ECLIPSEDEPLOYMENTPROFILE}" | |
fi | |
fi | |
fi | |
# Startup! | |
clear | |
echo "Starting Be Informed ${APPVER} (${1}) using workspace ${DATADIR}" | |
echo "Configuration:" | |
cat "${CONFIG}" | |
# Use workaround in https://stackoverflow.com/questions/19563766/eclipse-kepler-for-os-x-mavericks-request-java-se-6?noredirect=1&lq=1 | |
# in case direct open doesn't work. open -n <bundle> --args <eclipseArgs> works | |
# However, the console won't be available | |
"${APPDIR}/${STUDIOAPPNAME}.app/Contents/MacOS/${STUDIOAPPNAME}" \ | |
-data "${DATADIR}" \ | |
--launcher.ini "${CONFIG}" | |
# Save deployment profile | |
if [ -f "${ECLIPSEDEPLOYMENTPROFILE}" ] ; then | |
cp "${ECLIPSEDEPLOYMENTPROFILE}" "${DEPLOYMENTPROFILE}" | |
fi | |
# Save settings | |
if [ -d "${ECLIPSEPREFSDIR}" ] ; then | |
if [ ! -d "${PREFSDIR}" ] ; then | |
mkdir -p "${PREFSDIR}" | |
fi | |
cp "${ECLIPSEPREFSDIR}/"* "${PREFSDIR}" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment