Skip to content

Instantly share code, notes, and snippets.

@liweinan
Created April 16, 2025 09:04
Show Gist options
  • Select an option

  • Save liweinan/4258fb819ec205976bd8bf27eeb3264b to your computer and use it in GitHub Desktop.

Select an option

Save liweinan/4258fb819ec205976bd8bf27eeb3264b to your computer and use it in GitHub Desktop.

Revisions

  1. liweinan created this gist Apr 16, 2025.
    165 changes: 165 additions & 0 deletions download.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,165 @@
    #!/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 .