#!/bin/bash set -e #if [ $# -ne 1 ] ; then # echo "ERROR: the first an unique argument is the linshare version number, ex 0.9.3" # exit 1 #fi ############################################################ # GLOBAL VARIABLES ############################################################ # Argument : optional : build function name, ex: build_sso g_main_function=$1 g_version=`grep -E "(.*)" pom.xml -o|head -n1|sed -r 's/(.*)<\/version>/\1/g'` g_logfile=linshare.build.$$.log #g_mvn_opts="-Dmaven.test.skip" g_mvn_opts="" g_output_dir="./target" g_distribution_dir="./distrib" g_ressources="./src/main/resources" ############################################################ # FUNCTIONS ############################################################ function echo_linshare () { local l_args=$@ echo "[INFO] ${l_args}" echo "[BUILD-LINSHARE-SCRIPT][INFO] ${l_args}" >> $g_logfile } function maven () { echo "> mvn $@ ${g_mvn_opts}" mvn $@ ${g_mvn_opts} >> $g_logfile } function maven_clean () { echo_linshare "Cleaning maven compiled files..." echo "> mvn clean" mvn clean >> $g_logfile } function distribute_jar () { local l_version=${g_version} local l_extension="jar" local l_root_name="linshare-${l_version}" local l_ouput_name="linshare-${l_version}" mv ${g_output_dir}/${l_root_name}.${l_extension} ${g_distribution_dir}/${l_ouput_name}.${l_extension} echo_linshare "Done." } function distribute_war () { local l_suffix=$1 local l_version=${g_version} local l_extension="war" local l_root_name="linshare" local l_ouput_name="linshare-${l_version}" if [ "${l_suffix}" != "" ] ; then l_ouput_name="${l_ouput_name}${l_suffix}" fi mv ${g_output_dir}/${l_root_name}.${l_extension} ${g_distribution_dir}/${l_ouput_name}.${l_extension} echo_linshare "Done." } function init_context () { ### Initialisation du workspace. echo_linshare "Log file : ${g_logfile}" echo_linshare "Building LinShare ${g_version} distribution" echo_linshare "Creating distrib dir..." rm -f ${g_distribution_dir}/* mkdir -p ${g_distribution_dir} } function end_context () { # Clean du workspace. maven_clean echo_linshare "END." } function build_installer () { # Creation de la version avec installeur. maven_clean echo_linshare "Building jar installer..." maven package -Dtarget=distribution distribute_jar } function build_classic () { # Creation de la version sans SSO maven_clean echo_linshare "Building war without SSO..." maven package distribute_war "-without-SSO" } function build_cas () { # Creation de la version avec CAS maven_clean echo_linshare "Building war for CAS..." mv ${g_ressources}/{,DISABLED}springContext-security.xml mv ${g_ressources}/{DISABLED,}springContext-securityCAS.xml maven package distribute_war "-CAS" mv ${g_ressources}/{DISABLED,}springContext-security.xml mv ${g_ressources}/{,DISABLED}springContext-securityCAS.xml } function build_sso () { # Creation de la version avec SSO maven_clean echo_linshare "Building war for HTTP-Header based SSO..." mv ${g_ressources}/{,DISABLED}springContext-security.xml mv ${g_ressources}/{DISABLED,}springContext-securityLLNG.xml maven package distribute_war "-SSO" mv ${g_ressources}/{DISABLED,}springContext-security.xml mv ${g_ressources}/{,DISABLED}springContext-securityLLNG.xml } ############################################################ # MAIN ############################################################ # Initialisation du workspace. init_context if [ -z $g_main_function ] ; then # Creation de la version avec installeur. build_installer # Creation de la version sans SSO build_classic # Creation de la version avec CAS build_cas # Creation de la version avec SSO build_sso else if [ `declare -F $g_main_function|wc -l` -eq 1 ] ; then $g_main_function else echo "ERROR:$g_main_function is not a valid function : possible choices are : build_classic , build_installer , build_cas , build_sso " exit 1 fi fi # Clean du workspace. end_context