Created
April 16, 2025 09:04
-
-
Save liweinan/4258fb819ec205976bd8bf27eeb3264b to your computer and use it in GitHub Desktop.
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 | |
set -x | |
. ./functions.sh | |
pwdir="$(dirname '$0')" | |
ip='download.eng.bos.redhat.com' | |
alias wget='wget -nc' | |
# Stop the script if any errors occur. | |
errhandler() | |
{ | |
errcode=$? | |
# wget returns 8 for not found | |
if [[ ($errcode -eq 8) ]] ; then | |
: | |
elif [[ ($errcode -eq 4) ]] ; then | |
# unable to resolve host address | |
# this is for rhel and windows builds only | |
# solaris platform has stable ip address | |
prefix="wget: unable to resolve host address" | |
host=`grep "${prefix}" wget.out` | |
host=${host#${prefix}} | |
host=`echo ${host} | tr -cd '[[:alnum:]]._-'` | |
ip=`dig +short @127.0.0.1 -p 8053 ${host} | tail -1` | |
download_packages | |
else | |
echo "LINE $1: command exited with status $errcode." | |
exit $errcode | |
fi | |
} | |
trap 'errhandler $LINENO' ERR | |
# DON'T EDIT ME, IT'S AUTOMATED! | |
my_sunrel_src='' | |
my_sunrel_appserver='43.sun10' | |
my_winrel_src='' | |
my_winrel_appserver='43.win6' | |
my_el6_ver='51.ep7.el6' | |
my_el7_ver='51.ep7.el7' | |
my_hibernate_ver='4.2.23' | |
my_hibernate_rel='1.Final_redhat_1.1.ep6.el6' | |
my_hibernate_zip='hibernate4-zip-4.2.23-1.Final_redhat_1.1.ep6.el6.noarch.rpm' | |
my_tomcat_vault_ver='1.1.6' | |
my_tomcat_vault_rel='1.Final_redhat_1.1.ep7.el7' | |
# END OF AUTOMATION | |
# RHEL Packages | |
function download_packages { | |
trap 'errhandler $LINENO' ERR | |
el_zip="${pkg_name}-zip-${pkg_ver}-${pkg_rel}.${arch}.rpm" | |
el_link="http://${ip}/brewroot/packages/${pkg_name}/${pkg_ver}/${pkg_rel}/${arch}/${el_zip}" | |
wget $el_link 2> wget.out | |
if [ -f "${el_zip}" ]; then | |
rpm2cpio ${el_zip} | cpio -idv | |
else | |
el_link="http://${ip}/brewroot/vol/rhel-6/packages/${pkg_name}/${pkg_ver}/${pkg_rel}/${arch}/${el_zip}" | |
wget $el_link 2> wget.out | |
if [ -f "${el_zip}" ]; then | |
rpm2cpio ${el_zip} | cpio -idv | |
fi | |
fi | |
} | |
# el7 | |
pkg_archs=("ppc64" "x86_64") | |
pkg_ver="${jws_ver}" | |
pkg_rel="${my_el7_ver}" | |
pkg_name="${el_pkg_name}" | |
# first run is just to get ip | |
arch=${pkg_archs[0]} | |
download_packages # get host name | |
download_packages # get cache server ip | |
for arch in "${pkg_archs[@]}" | |
do | |
download_packages | |
done | |
# el6 | |
pkg_archs=("i686" "x86_64" "ppc64") | |
pkg_ver="${jws_ver}" | |
pkg_rel="${my_el6_ver}" | |
pkg_name="${el_pkg_name}" | |
for arch in "${pkg_archs[@]}" | |
do | |
download_packages | |
done | |
# tomcat-vault | |
arch="noarch" | |
pkg_ver="${my_tomcat_vault_ver}" | |
pkg_rel="${my_tomcat_vault_rel}" | |
pkg_name="tomcat-vault" | |
download_packages | |
# Hibernate | |
wget "http://${ip}/brewroot/packages/hibernate4/${my_hibernate_ver}/${my_hibernate_rel}/noarch/${my_hibernate_zip}" 2> wget.out | |
rpm2cpio ${my_hibernate_zip} | cpio -idv | |
mv -f ./usr/share/java/hibernate4-fordev/*.zip . | |
# Windows Packages | |
winrel_src=${my_winrel_src} | |
winrel_src_zip="${win_pkg_name}-${jws_ver}-${winrel_src}.src.zip" | |
winrel_src_link="http://${ip}/brewroot/packages/${win_pkg_name}/${jws_ver}/${winrel_src}/win/${winrel_src_zip}" | |
wget $winrel_src_link 2> wget.out | |
winrel_archs=("i686" "x86_64") | |
winrel_components=("application-servers") | |
winrel_appserver=${my_winrel_appserver} | |
for component in "${winrel_components[@]}" | |
do | |
case "$component" in | |
"application-servers" ) winrel_component_ver="${winrel_appserver}";; | |
esac | |
for arch in "${winrel_archs[@]}" | |
do | |
winrel_component_zip="${win_pkg_name}-${component}-${jws_ver}-${winrel_component_ver}.${arch}.zip" | |
winrel_component_link="http://${ip}/brewroot/packages/${win_pkg_name}-${component}/${jws_ver}/${winrel_component_ver}/win/${winrel_component_zip}" | |
wget $winrel_component_link 2> wget.out | |
done | |
done | |
# Solaris Packages | |
# FIXME: we don't have jws-src yet, the 'sunrel_src_link' may need to be adjusted after we have it. | |
sunrel_src=${my_sunrel_src} | |
sunrel_src_zip="${sun_pkg_name}-${jws_ver}-${sunrel_src}.src.zip" | |
sunrel_src_link="${sunrel_link_base}-src/${jws_ver}/${sunrel_src}/src/${sunrel_src_zip}" | |
wget $sunrel_src_link 2> wget.out | |
sunrel_archs=("i386" "sparc64" "x86_64") | |
sunrel_components=("application-servers") | |
sunrel_appserver=${my_sunrel_appserver} | |
for component in "${sunrel_components[@]}" | |
do | |
case "$component" in | |
"application-servers" ) sunrel_component_ver="${sunrel_appserver}";; | |
esac | |
for arch in "${sunrel_archs[@]}" | |
do | |
sunrel_component_zip="jws-${component}-${jws_ver}-${sunrel_component_ver}.${arch}.zip" | |
sunrel_component_link="${sunrel_link_base}-${component}/${jws_ver}/${sunrel_component_ver}/${arch}/${sunrel_component_zip}" | |
wget $sunrel_component_link 2> wget.out | |
done | |
done | |
# Cleanup | |
if [ -d ./usr/share/java/tomcat-vault-fordev ]; then | |
mv -f ./usr/share/java/tomcat-vault-fordev/*.zip . | |
fi | |
mv -f ./usr/share/java/jbossas-fordev/*.zip . |
download.sh:
#!/bin/sh
set -x
. ./functions.sh
pwdir="$(dirname '$0')"
ip='download.eng.bos.redhat.com'
alias wget='wget -nc'
# Stop the script if any errors occur.
errhandler()
{
errcode=$?
# wget returns 8 for not found
if [[ ($errcode -eq 8) ]] ; then
:
elif [[ ($errcode -eq 4) ]] ; then
# unable to resolve host address
# this is for rhel and windows builds only
# solaris platform has stable ip address
prefix="wget: unable to resolve host address"
host=`grep "${prefix}" wget.out`
host=${host#${prefix}}
host=`echo ${host} | tr -cd '[[:alnum:]]._-'`
ip=`dig +short @127.0.0.1 -p 8053 ${host} | tail -1`
download_packages
else
echo "LINE $1: command exited with status $errcode."
exit $errcode
fi
}
trap 'errhandler $LINENO' ERR
# DON'T EDIT ME, IT'S AUTOMATED!
my_sunrel_src=''
my_sunrel_appserver='43.sun10'
my_winrel_src=''
my_winrel_appserver='43.win6'
my_el6_ver='51.ep7.el6'
my_el7_ver='51.ep7.el7'
my_hibernate_ver='4.2.23'
my_hibernate_rel='1.Final_redhat_1.1.ep6.el6'
my_hibernate_zip='hibernate4-zip-4.2.23-1.Final_redhat_1.1.ep6.el6.noarch.rpm'
my_tomcat_vault_ver='1.1.6'
my_tomcat_vault_rel='1.Final_redhat_1.1.ep7.el7'
# END OF AUTOMATION
# RHEL Packages
function download_packages {
trap 'errhandler $LINENO' ERR
el_zip="${pkg_name}-zip-${pkg_ver}-${pkg_rel}.${arch}.rpm"
el_link="http://${ip}/brewroot/packages/${pkg_name}/${pkg_ver}/${pkg_rel}/${arch}/${el_zip}"
wget $el_link 2> wget.out
if [ -f "${el_zip}" ]; then
rpm2cpio ${el_zip} | cpio -idv
else
el_link="http://${ip}/brewroot/vol/rhel-6/packages/${pkg_name}/${pkg_ver}/${pkg_rel}/${arch}/${el_zip}"
wget $el_link 2> wget.out
if [ -f "${el_zip}" ]; then
rpm2cpio ${el_zip} | cpio -idv
fi
fi
}
# el7
pkg_archs=("ppc64" "x86_64")
pkg_ver="${jws_ver}"
pkg_rel="${my_el7_ver}"
pkg_name="${el_pkg_name}"
# first run is just to get ip
arch=${pkg_archs[0]}
download_packages # get host name
download_packages # get cache server ip
for arch in "${pkg_archs[@]}"
do
download_packages
done
# el6
pkg_archs=("i686" "x86_64" "ppc64")
pkg_ver="${jws_ver}"
pkg_rel="${my_el6_ver}"
pkg_name="${el_pkg_name}"
for arch in "${pkg_archs[@]}"
do
download_packages
done
# tomcat-vault
arch="noarch"
pkg_ver="${my_tomcat_vault_ver}"
pkg_rel="${my_tomcat_vault_rel}"
pkg_name="tomcat-vault"
download_packages
# Hibernate
wget "http://${ip}/brewroot/packages/hibernate4/${my_hibernate_ver}/${my_hibernate_rel}/noarch/${my_hibernate_zip}" 2> wget.out
rpm2cpio ${my_hibernate_zip} | cpio -idv
mv -f ./usr/share/java/hibernate4-fordev/*.zip .
# Windows Packages
winrel_src=${my_winrel_src}
winrel_src_zip="${win_pkg_name}-${jws_ver}-${winrel_src}.src.zip"
winrel_src_link="http://${ip}/brewroot/packages/${win_pkg_name}/${jws_ver}/${winrel_src}/win/${winrel_src_zip}"
wget $winrel_src_link 2> wget.out
winrel_archs=("i686" "x86_64")
winrel_components=("application-servers")
winrel_appserver=${my_winrel_appserver}
for component in "${winrel_components[@]}"
do
case "$component" in
"application-servers" ) winrel_component_ver="${winrel_appserver}";;
esac
for arch in "${winrel_archs[@]}"
do
winrel_component_zip="${win_pkg_name}-${component}-${jws_ver}-${winrel_component_ver}.${arch}.zip"
winrel_component_link="http://${ip}/brewroot/packages/${win_pkg_name}-${component}/${jws_ver}/${winrel_component_ver}/win/${winrel_component_zip}"
wget $winrel_component_link 2> wget.out
done
done
# Solaris Packages
# FIXME: we don't have jws-src yet, the 'sunrel_src_link' may need to be adjusted after we have it.
sunrel_src=${my_sunrel_src}
sunrel_src_zip="${sun_pkg_name}-${jws_ver}-${sunrel_src}.src.zip"
sunrel_src_link="${sunrel_link_base}-src/${jws_ver}/${sunrel_src}/src/${sunrel_src_zip}"
wget $sunrel_src_link 2> wget.out
sunrel_archs=("i386" "sparc64" "x86_64")
sunrel_components=("application-servers")
sunrel_appserver=${my_sunrel_appserver}
for component in "${sunrel_components[@]}"
do
case "$component" in
"application-servers" ) sunrel_component_ver="${sunrel_appserver}";;
esac
for arch in "${sunrel_archs[@]}"
do
sunrel_component_zip="jws-${component}-${jws_ver}-${sunrel_component_ver}.${arch}.zip"
sunrel_component_link="${sunrel_link_base}-${component}/${jws_ver}/${sunrel_component_ver}/${arch}/${sunrel_component_zip}"
wget $sunrel_component_link 2> wget.out
done
done
# Cleanup
if [ -d ./usr/share/java/tomcat-vault-fordev ]; then
mv -f ./usr/share/java/tomcat-vault-fordev/*.zip .
fi
mv -f ./usr/share/java/jbossas-fordev/*.zip .
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
spec file: