Add auto patch for /etc/banner

This commit is contained in:
remittor
2024-01-19 12:03:31 +03:00
parent c537398ebe
commit f693f4f4f1

View File

@@ -39,7 +39,7 @@ die() {
get_param_q() {
local param=$1
local filename="$2"
echo $( grep -o -P "^$param='\K[^']+" "$filename" 2>/dev/null )
echo $( grep -o -P "^$param='\K[^']+" "$filename" 2>/dev/null | tr -d '\n' )
#echo $( grep -o -P "(?<=^$param=').*(')" "$filename" 2>/dev/null )
}
@@ -67,17 +67,30 @@ if [ -z "$FULL_VERSION" ]; then
die "Firmware version not found!"
fi
FULL_VERSION=$( grep -oP "^DISTRIB_RELEASE='\K[^']+" "$FW_VER_FN" 2>/dev/null )
DISTR_DESC=$( grep -oP "^DISTRIB_DESCRIPTION='\K[^']+" "$FW_VER_FN" 2>/dev/null )
CURDATE=$( date --utc +%y%m%d | tr -d '\n' )
DISTR_REV=$( get_param_q DISTRIB_REVISION "$FW_VER_FN" )
DISTR_DESC=$( get_param_q DISTRIB_RELEASE "$FW_VER_FN" )
DISTR_DATE_LEN=$( echo -n "$DISTR_DESC" | awk '{print $NF}' | tr -d '\n' | wc -c )
if [ "$DISTR_DATE_LEN" = 6 ]; then
DISTR_DESC=$( del_last_word $DISTR_DESC )
fi
sed -i "/DISTRIB_DESCRIPTION=/d" "$FW_VER_FN"
CURDATE=$( date --utc +%y%m%d | tr -d '\n' )
echo "DISTRIB_DESCRIPTION='$DISTR_DESC $CURDATE'" >> "$FW_VER_FN"
log_msg "Option DISTRIB_DESCRIPTION patched (DATE = $CURDATE)"
BANNER_FN="$ROOTFSDIR/etc/banner"
BANNER_VER=$( grep -F "$DISTR_REV" "$BANNER_FN" 2>/dev/null )
if [ -n "$BANNER_VER" ]; then
BANNER_SUFFIX=$( echo -n "$BANNER_VER" | awk '{print $NF}' | tr -d '\n' )
if [ $( echo -n "$BANNER_SUFFIX" | wc -c ) = 6 ]; then
sed -i "s/, $BANNER_SUFFIX/, $CURDATE/g" "$BANNER_FN"
else
sed -i "s/$DISTR_REV/&, $CURDATE/" "$BANNER_FN"
fi
fi
log_msg "Banner patched (DATE = $CURDATE)"
FW_ARCH=$( get_param_q DISTRIB_ARCH "$FW_VER_FN" )
#log_msg "FW_ARCH: '$FW_ARCH'"
if [ -z "$FW_ARCH" ]; then