|
|
|
|
@ -21,47 +21,45 @@ ENABLED=yes
|
|
|
|
|
PATH_KERNEL=$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "vmlinuz*" | head -1 | xargs dirname)
|
|
|
|
|
|
|
|
|
|
# Удаляем модули, отмеченные на устаревшие
|
|
|
|
|
for F_REMOVE in $(cat ${F_UPGRADE_CONF} | uniq | grep "remove=" | sed "s/remove=//"); do
|
|
|
|
|
[[ -f ${F_REMOVE} ]] && rm -f ${F_REMOVE} 2>/dev/null
|
|
|
|
|
[[ -f ${F_UPGRADE_CONF} ]] && for F_REMOVE in $(cat ${F_UPGRADE_CONF} | uniq | grep "remove=" | sed "s/remove=//"); do
|
|
|
|
|
[[ -f ${F_REMOVE} ]] && rm -vf ${F_REMOVE} 2>/dev/null
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Переименовываем модули, отмеченные на обновляемые
|
|
|
|
|
for F_RENAME_UPGRADE in $(find ${PATH_BASE} ${PATH_MODULES} -type f -name "*.upgrade"); do
|
|
|
|
|
[[ -f ${F_RENAME_UPGRADE} ]] && mv -f ${F_RENAME_UPGRADE} ${F_RENAME_UPGRADE/.${EXT}.upgrade/.${EXT}} 2>/dev/null
|
|
|
|
|
[[ -n ${PATH_BASE} || -n ${PATH_MODULES} ]] && for F_RENAME_UPGRADE in $(find ${PATH_BASE} ${PATH_MODULES} -type f -name "*.upgrade"); do
|
|
|
|
|
[[ -f ${F_RENAME_UPGRADE} ]] && mv -vf ${F_RENAME_UPGRADE} ${F_RENAME_UPGRADE/.${EXT}.upgrade/.${EXT}} 2>/dev/null
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Перемещаем модули, отмеченные на обновляемые
|
|
|
|
|
for F_UPGRADE in $(cat ${F_UPGRADE_CONF} | uniq | grep "upgrade=" | sed "s/install=//"); do
|
|
|
|
|
for PATH_UPGRADE_ITEM in ${PATH_UPGRADE}; do
|
|
|
|
|
[[ -f ${PATH_UPGRADE_ITEM}/${F_UPGRADE##*/} ]] && mv -f ${PATH_UPGRADE_ITEM}/${F_UPGRADE##*/} ${F_UPGRADE%/*} 2>/dev/null
|
|
|
|
|
[[ -f ${F_UPGRADE_CONF} ]] && for F_UPGRADE in $(cat ${F_UPGRADE_CONF} | uniq | grep "upgrade=" | sed "s/install=//"); do
|
|
|
|
|
[[ -n ${PATH_UPGRADE} ]] && for PATH_UPGRADE_ITEM in ${PATH_UPGRADE}; do
|
|
|
|
|
[[ -f ${PATH_UPGRADE_ITEM}/${F_UPGRADE##*/} ]] && mv -vf ${PATH_UPGRADE_ITEM}/${F_UPGRADE##*/} ${F_UPGRADE%/*} 2>/dev/null
|
|
|
|
|
done
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Перемещаем модули, отмеченные на новые на установку
|
|
|
|
|
for F_INSTALL in $(cat ${F_UPGRADE_CONF} | uniq | grep "install=" | sed "s/install=//"); do
|
|
|
|
|
for PATH_UPGRADE_ITEM in ${PATH_UPGRADE}; do
|
|
|
|
|
[[ -f ${PATH_UPGRADE_ITEM}/${F_INSTALL##*/} ]] && mv -f ${PATH_UPGRADE_ITEM}/${F_INSTALL##*/} ${F_INSTALL%/*} 2>/dev/null
|
|
|
|
|
[[ -f ${F_UPGRADE_CONF} ]] && for F_INSTALL in $(cat ${F_UPGRADE_CONF} | uniq | grep "install=" | sed "s/install=//"); do
|
|
|
|
|
[[ -n ${PATH_UPGRADE} ]] && for PATH_UPGRADE_ITEM in ${PATH_UPGRADE}; do
|
|
|
|
|
[[ -f ${PATH_UPGRADE_ITEM}/${F_INSTALL##*/} ]] && mv -vf ${PATH_UPGRADE_ITEM}/${F_INSTALL##*/} ${F_INSTALL%/*} 2>/dev/null
|
|
|
|
|
done
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Переименовываем модули, отмеченные на обновление, но отсутствующие в upgrade.conf
|
|
|
|
|
for F_NOMARK_UPGRADE in $(find ${PATH_UPGRADE} -type f -name "*.${EXT}*"); do
|
|
|
|
|
[[ -n ${PATH_UPGRADE} ]] && for F_NOMARK_UPGRADE in $(find ${PATH_UPGRADE} -type f -name "*.${EXT}*"); do
|
|
|
|
|
NAME_NOMARK_UPGRADE=${F_NOMARK_UPGRADE##*/}
|
|
|
|
|
if [[ ${NAME_NOMARK_UPGRADE} =~ ^[0-9]{3}-.* ]]; then
|
|
|
|
|
[[ -f ${F_NOMARK_UPGRADE} ]] && mv -f ${F_NOMARK_UPGRADE} $(tail -1 <<< ${PATH_BASE})/${NAME_NOMARK_UPGRADE/.upgrade/}
|
|
|
|
|
[[ -f ${F_NOMARK_UPGRADE} ]] && mv -vf ${F_NOMARK_UPGRADE} $(tail -1 <<< ${PATH_BASE})/${NAME_NOMARK_UPGRADE/.upgrade/} 2>/dev/null
|
|
|
|
|
else
|
|
|
|
|
[[ -f ${F_NOMARK_UPGRADE} ]] && mv -f ${F_NOMARK_UPGRADE} $(tail -1 <<< ${PATH_MODULES})/${NAME_NOMARK_UPGRADE/.upgrade/}
|
|
|
|
|
[[ -f ${F_NOMARK_UPGRADE} ]] && mv -vf ${F_NOMARK_UPGRADE} $(tail -1 <<< ${PATH_MODULES})/${NAME_NOMARK_UPGRADE/.upgrade/} 2>/dev/null
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Удаляем модули с одинаковыми именами старых версий
|
|
|
|
|
find ${PATH_BASE} ${PATH_MODULES} -maxdepth 1 -name "*.${EXT}" 2>/dev/null | sed -En "s/(.*\/)((.*)-([^-]+)-([^-]+)-[^-]+\.${EXT})/\1|\3|\2/p" | sort --field-separator="|" --key=3rbV | awk -F '|' 'prefixes[$2]++ {print $1$3}' | xargs rm -vf 2>/dev/null
|
|
|
|
|
[[ -n ${PATH_BASE} || -n ${PATH_MODULES} ]] && find ${PATH_BASE} ${PATH_MODULES} -maxdepth 1 -name "*.${EXT}" 2>/dev/null | sed -En "s/(.*\/)((.*)-([^-]+)-([^-]+)-[^-]+\.${EXT})/\1|\3|\2/p" | sort --field-separator="|" --key=3rbV | awk -F '|' 'prefixes[$2]++ {print $1$3}' | xargs -I {} rm -vf {} 2>/dev/null
|
|
|
|
|
# TODO: Вырезать из файла чек сумм имена удаляемых модулей
|
|
|
|
|
|
|
|
|
|
# Обновление найденных модулей ядра
|
|
|
|
|
find ${PATH_UPGRADE} -type f -regextype sed -regex ".*/vmlinuz-[0-9.]\{5,8\}-[0-9]\{1,4\}" -exec mv -ft ${PATH_KERNEL} {} +
|
|
|
|
|
find ${PATH_UPGRADE} -type f -regextype sed -regex ".*/ublinux-[0-9.]\{5,8\}-[0-9]\{1,4\}" -exec mv -ft ${PATH_KERNEL} {} +
|
|
|
|
|
|
|
|
|
|
rm -f ${F_UPGRADE_CONF}
|
|
|
|
|
|
|
|
|
|
[[ -n ${PATH_UPGRADE} && -d ${PATH_KERNEL} ]] && find ${PATH_UPGRADE} -type f -regextype sed -regex ".*/vmlinuz-[0-9.]\{5,8\}-[0-9]\{1,4\}" -exec mv -vft "${PATH_KERNEL}" {} +
|
|
|
|
|
[[ -n ${PATH_UPGRADE} && -d ${PATH_KERNEL} ]] && find ${PATH_UPGRADE} -type f -regextype sed -regex ".*/ublinux-[0-9.]\{5,8\}-[0-9]\{1,4\}" -exec mv -vft "${PATH_KERNEL}" {} +
|
|
|
|
|
|
|
|
|
|
[[ -f ${F_UPGRADE_CONF} ]] && rm -vf "${F_UPGRADE_CONF}"
|
|
|
|
|
|