awips2/deltaScripts/18.1.1/DR6372/6372_move_cave_static_files.sh
2022-05-05 12:34:50 -05:00

90 lines
3.7 KiB
Bash
Executable file

#!/bin/bash
# 6372 - Move AbstractMenuUtil menu localization files to common_static.
#
# Author: mapeters
# Aug 21, 2017
# files under menus/ dir that are handled by AbstractMenuUtil
declare -a menu_files=("ffmp/ffmp.xml"
"scan/scan.xml"
"fog/baseFog.xml"
"safeseas/baseSafeSeas.xml"
"snow/baseSnow.xml"
"satellite/baseDerivedProductsImagery.xml"
"satellite/baseComposite.xml"
"upperair/baseRAOB.xml"
"upperair/uaMenus.xml"
"upperair/.upperairMenuTime"
"radar/index.xml"
"radar/dialRadars.xml"
"radar/airportRadars.xml"
"radar/radarindex.xml"
"radar/.radarMenuTime"
"ncepHydro/cpc/cpcMenus.xml"
"ncepHydro/spc/hazardMenus.xml"
"ncepHydro/hpc/hpcMenus.xml"
"ncepHydro/mpc/mpcMenus.xml"
"ncepHydro/nco/ncoMenus.xml"
"ncepHydro/cpc/.ncepHydro/cpcMenuTime"
"ncepHydro/spc/.ncepHydro/spcMenuTime"
"ncepHydro/hpc/.ncepHydro/hpcMenuTime"
"ncepHydro/mpc/.ncepHydro/mpcMenuTime"
"ncepHydro/nco/.ncepHydro/ncoMenuTime"
)
function get_fs() {
df -P -- "$1" | awk 'NR==2 {print $1}'
}
did_work=false
echo INFO: Moving AbstractMenuUtil menu localization files to common_static
for menu_file in "${menu_files[@]}"; do
for old_location in /awips2/edex/data/utility/cave_static/*/*/menus/"${menu_file}"; do
if [[ ! -e "${old_location}" ]]; then
continue
fi
new_location=${old_location/cave_static/common_static}
echo INFO: Moving "${old_location}" to "${new_location}"
did_work=true
new_location_dir=$(dirname "${new_location}")
if [[ ! -d "${new_location_dir}" ]]; then
sudo -u awips mkdir -p -m 750 "${new_location_dir}"
else
echo "WARN: ${new_location} already exists. Just copying newer files"
fi
if rsync -aux "${old_location}" "${new_location}"; then
# cut context directory (e.g. /awips2/.../site/OAX) from old_location
old_location_ctx_dir=$(echo "${old_location}" | cut -d/ -f-8)
# filesystem that context dir is on
ctx_fs=$(get_fs "${old_location_ctx_dir}")
# remove moved file if on same filesystem as context dir
file_fs=$(get_fs "${old_location}")
if [[ "${file_fs}" = "${ctx_fs}" ]]; then
rm -f "${old_location}" "${old_location}".md5
fi
old_location_dir=$(dirname "${old_location}")
# remove empty directories up until the context dir
while [[ "${old_location_ctx_dir}" != "${old_location_dir}" ]]; do
# filesystem that dir is on
dir_fs=$(get_fs "${old_location_dir}")
if [[ "${dir_fs}" = "${ctx_fs}" ]]; then
# remove empty directory if on same filesystem
# stop moving up directory tree if we find non-empty directory
rmdir "${old_location_dir}" 2>/dev/null || break
fi
old_location_dir=$(dirname "${old_location_dir}")
done
fi
rm -f "${new_location}".md5
echo INFO: Done moving "${old_location}" to "${new_location}"
done
done
if [[ "${did_work}" == "false" ]]; then
echo INFO: There are no files to move. Did nothing
else
echo INFO: Done moving localization files
fi