diff options
Diffstat (limited to 'scripts/make_zoneinfo.sh')
-rwxr-xr-x | scripts/make_zoneinfo.sh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/scripts/make_zoneinfo.sh b/scripts/make_zoneinfo.sh new file mode 100755 index 000000000..ad3367584 --- /dev/null +++ b/scripts/make_zoneinfo.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +if test -z "${PTXDIST_TOPDIR}"; then + echo PTXDIST_TOPDIR is unset + exit +fi + +. ${PTXDIST_TOPDIR}/scripts/ptxdist_vars.sh +. ${SCRIPTSDIR}/libptxdist.sh +. ${SCRIPTSDIR}/install_copy_toolchain.sh + +usage() { + echo + echo "usage: $0 <args>" + echo + echo " Arguments:" + echo + echo " -n name zoneinfoe name" + echo " -p prefix prefix dir" + exit 1 +} + +add_zoneinfo() { + local PREF ZONEINFO_NAME + while getopts "n:p:" opt; do + case "${opt}" in + n) + ZONEINFO_NAME="${OPTARG}" + ;; + p) + PREF="${OPTARG}" + ;; + *) + usage + ;; + esac + done + + SYSROOT_USR=`ptxd_get_sysroot_usr` + [ ! -d ${SYSROOT_USR} ] && { echo "Toolchain sysroot dir not found"; exit 1; } + [ ! -d ${SYSROOT_USR}/share/zoneinfo ] && { echo "Zoneinfo dir not found"; exit 1; } + + if [ ! -d ${PREF}/zoneinfo ]; then + mkdir -p ${PREF}/zoneinfo + [ $? -ne 0 ] && { echo "Could not create temporary zoneinfo directory ${PREF}/usr/share/zoneinfo"; exit 1; } + fi + + if [ -d ${SYSROOT_USR}/share/zoneinfo/${ZONEINFO_NAME} ]; then + mkdir -p ${PREF}/zoneinfo/${ZONEINFO_NAME} + [ $? -ne 0 ] && { echo "Could not create temporary zoneinfo directory ${PREF}/zoneinfo/${ZONEINFO_NAME}"; exit 1; } + cp -R ${SYSROOT_USR}/share/zoneinfo/${ZONEINFO_NAME}/* ${PREF}/zoneinfo/${ZONEINFO_NAME} + [ $? -ne 0 ] && { echo "Could not create temporary zoneinfo files ${PREF}/zoneinfo${ZONEINFO_NAME}"; exit 1; } + else + cp ${SYSROOT_USR}/share/zoneinfo/${ZONEINFO_NAME} ${PREF}/zoneinfo/${ZONEINFO_NAME} + [ $? -ne 0 ] && { echo "Could not create temporary zoneinfo file ${PREF}/zoneinfo/${ZONEINFO_NAME}"; exit 1; } + fi +} + +add_zoneinfo "${@}" +exit 0 |