Skip to content

Instantly share code, notes, and snippets.

@liweinan
Created April 16, 2025 09:04
Show Gist options
  • Save liweinan/4258fb819ec205976bd8bf27eeb3264b to your computer and use it in GitHub Desktop.
Save liweinan/4258fb819ec205976bd8bf27eeb3264b to your computer and use it in GitHub Desktop.
#!/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 .
@liweinan
Copy link
Author

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