#!/bin/bash #filename="duo/ap2nc-024310-048-20150507_original.deb" filename="duo/ap2nc-024310-048-20210628-hotfix1.deb" master_package_name="ap2nc" version_current=`echo "02.43.10-048" | tr -d .-` version_newfile=`dpkg -f ${filename} Version` version_newfile=`echo ${version_newfile} | tr -d .-` package_newfile=`dpkg -f ${filename} Package` # extract master package and update-container names master_package_new=${package_newfile%%-*} update_container=${package_newfile#*-} update_container=${update_container%%-*} version_newfile="024310048" version_newfile="024310047" [ "${master_package_name}" == "${update_container}" ] && update_container='' echo "version_current=$version_current" echo "version_newfile=$version_newfile" echo "package_newfile=$package_newfile" echo "master_package_name=$master_package_name" echo "master_package_new=$master_package_new" echo "update_container=$update_container" # declare arithmetic variable types (ensure conversion to base 10) let "vnew = $((10#$version_newfile))" let "vnow = $((10#$version_current))" # enforce same 'master-package' name if [ "${master_package_name}" != "${master_package_new}" ]; then error="failed 200 \"invalid firmware package\" 1" echo $error fi # ITR#34229: don't allow down rev code to be applied # -but allow 'patch updates" with any version if [ -z "${update_container}" ] && [ "${vnew}" -lt "${vnow}" ]; then error="failed 200 \"invalid firmware package\" 2" echo $error fi echo "GO!!!"