Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(overlay-build): new script that build overlay files
- Loading branch information
Showing
1 changed file
with
163 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
#!/bin/bash -eu | ||
### NAME | ||
### zanata-overlay-build Build overlay zip | ||
### | ||
### SYNOPSIS | ||
### zanata-overlay-build [Options] -a | ||
### zanata-overlay-build [Options] <version> | ||
### | ||
### OPTIONS | ||
### -h: Show this help | ||
### | ||
### -a: Automatic detected | ||
### Version will be detected from latest tag from git. | ||
### | ||
### -w: WAR file | ||
### WAR file to be include in overlay. | ||
### | ||
### | ||
### DESCRIPTION | ||
### This program builds overlay zip from | ||
### zanata-client and zanata-server. | ||
### | ||
|
||
SCRIPT_DIR=$(dirname $(readlink -q -f $0)) | ||
FUNCTION_SCRIPT_FILE=${SCRIPT_DIR}/zanata-functions | ||
source "${FUNCTION_SCRIPT_FILE}" | ||
trap exit_print_error EXIT | ||
PROGRAM_NAME=$(basename $0) | ||
|
||
### ENVIRONMENT | ||
### MYSQL_CONNECTOR_JAVA_VER | ||
: ${MYSQL_CONNECTOR_JAVA_VER:=5.1.19} | ||
|
||
DEPENDENFCIES_wildfly=(https://bintray.com/artifact/download/sflanigan/generic/wildfly-module-hibernate-main-4.2.20.Final.zip) | ||
|
||
|
||
##=== function definition Start === | ||
function maven_jar_download(){ | ||
local name=$1 | ||
local version=$2 | ||
local relativeDir=${3-} | ||
local destDir=${OverlayWorkDir}/${relativeDir} | ||
mkdir -p $destDir | ||
wget -c -P ${destDir} "http://central.maven.org/maven2/mysql/${name}/${version}/${name}-${version}.jar" | ||
} | ||
|
||
function overlay_pack(){ | ||
local distro=$1 | ||
mkdir -p $OverlayWorkDir/$VersionTag/$distro | ||
cd $OverlayWorkDir/$VersionTag/$distro | ||
print_status -t "overlay $distro" -s "Start" | ||
|
||
cp -R ${ModuleDir}/zanata-overlay/common/bin . | ||
cp -R ${ModuleDir}/zanata-overlay/common/standalone . | ||
cp -R ${ModuleDir}/zanata-overlay/distros/$distro/standalone . | ||
mkdir -p standalone/deployments | ||
cp -R ${DeployCommonDir} standalone/ | ||
cp ${LocalZanataWar} standalone/deployments | ||
if [[ $distro == wildfly ]];then | ||
for url in ${DEPENDENFCIES_wildfly[@]};do | ||
archFile=$(basename $url) | ||
case $archFile in | ||
*.zip ) | ||
unzip -u ${OverlayWorkDir}/$archFile | ||
;; | ||
*.tar.gz | *.gz ) | ||
tar xzvf ${OverlayWorkDir}/$archFile | ||
;; | ||
esac | ||
done | ||
fi | ||
|
||
zip -x '*.zip' -9 -r ../zanata-$Version-$distro.zip * | ||
} | ||
##=== parsing Start === | ||
print_status -t parsing -s "Start" | ||
AutoDetect=0 | ||
War= | ||
|
||
while getopts "haw:" opt;do | ||
case $opt in | ||
h ) | ||
zanata_script_help $0 | ||
exit ${EXIT_OK} | ||
;; | ||
a ) | ||
AutoDetect=1 | ||
;; | ||
w ) | ||
War=$OPTARG | ||
;; | ||
* ) | ||
failed ${EXIT_FATAL_INVALID_OPTIONS} "$opt" | ||
;; | ||
esac | ||
done | ||
|
||
shift $((OPTIND-1)) | ||
## Get Module | ||
Module=zanata-server | ||
|
||
## Get Version | ||
if [ ${AutoDetect} -eq 0 ];then | ||
if [ -z "${1-}" ];then | ||
zanata_script_help $0 | ||
EXIT_MSG="Requires version. Please either specify version or use option -a" | ||
|
||
exit ${EXIT_FATAL_INVALID_OPTIONS} | ||
fi | ||
Version=$1 | ||
else | ||
## Auto detect version | ||
Version=$(detect_module_version ${Module}) | ||
print_status " ${Module} version: $Version" | ||
|
||
test -n "$Version" | ||
exit_if_failed "$?" ${EXIT_FATAL_FAIL} "Failed to get version from ${Module} git repo" | ||
fi | ||
|
||
VersionTag=server-$Version | ||
|
||
##=== prepare Start === | ||
print_status -t prepare -s "Start" | ||
## Ensure repo | ||
ensure_repo $Module | ||
ModuleDir=${WORK_ROOT}/${Module} | ||
cd ${ModuleDir} | ||
git checkout $VersionTag | ||
|
||
##=== Download Dependencies Start === | ||
print_status -t "download dependency" -s "Start" | ||
OverlayWorkDir=${WORK_ROOT}/overlay | ||
create_missing_dir ${OverlayWorkDir} | ||
cd ${OverlayWorkDir} | ||
DeployVerDir=${OverlayWorkDir}/$VersionTag/standalone/deployments | ||
create_missing_dir ${DeployVerDir} | ||
|
||
for depUrl in "${DEPENDENFCIES_wildfly[@]}";do | ||
wget -c "$depUrl" | ||
done | ||
|
||
DeployCommonDir=${OverlayWorkDir}/deployments | ||
create_missing_dir ${DeployCommonDir} | ||
maven_jar_download mysql-connector-java ${MYSQL_CONNECTOR_JAVA_VER} | ||
cp mysql-connector-java-${MYSQL_CONNECTOR_JAVA_VER}.jar ${DeployCommonDir}/mysql-connector-java.jar | ||
|
||
##=== Get War Start === | ||
print_status -t "Get WAR" -s "Start" | ||
LocalZanataWar=${DeployVerDir}/zanata.war | ||
if [ ! -r ${LocalZanataWar} ];then | ||
if [ -n "${War-}" ];then | ||
cp $War $LocalZanataWar | ||
else | ||
wget -c -P ${VersionTag} https://github.com/zanata/zanata-server/releases/download/${VersionTag}/zanata-war-${Version}.war | ||
cp ${OverlayWorkDir}/$VersionTag/zanata-war-${Version}.war $LocalZanataWar | ||
fi | ||
fi | ||
|
||
##=== zip Start === | ||
print_status -t "zip" -s "Start" | ||
overlay_pack eap-6 | ||
overlay_pack wildfly | ||
|