=================================================================== RCS file: /cvs/openbsd/fw_update/fw_install.sh,v retrieving revision 1.17 retrieving revision 1.19 diff -u -r1.17 -r1.19 --- openbsd/fw_update/fw_install.sh 2021/10/18 00:24:55 1.17 +++ openbsd/fw_update/fw_install.sh 2021/10/21 02:02:52 1.19 @@ -6,13 +6,6 @@ sed -n "$1" /var/run/dmesg.boot } -installed_firmware() { - for fw in ${PKGDIR}/$1-firmware*; do - [ -e "$fw" ] || continue - echo ${fw##*/} - done -} - # tmpdir, do_as, unpriv, and unpriv2 are from install.sub # Create a temporary directory based on the supplied directory name prefix. @@ -147,7 +140,12 @@ for _d in $_drivers; do _f=$( sed -n "s/.*(\($_d-firmware-.*\.tgz\)).*/\1/p" "$_cfile" ) - _installed=$( installed_firmware "$_d" ) + _installed=$( + for fw in "${PKGDIR}/$_d-firmware"*; do + [ -e "$fw" ] || continue + echo ${fw##*/} + done + ) for _i in $_installed; do if [ "$_f" = "$_i.tgz" ]; then @@ -183,9 +181,9 @@ fi # TODO: Check hash for files before deleting - if [ "$installed" ] && [ -e "${PKGDIR}/$installed/+CONTENTS" ]; then - echo "Uninstalling $installed" - cwd=${PKGDIR}/$installed + if [ "$_installed" ] && [ -e "${PKGDIR}/$_installed/+CONTENTS" ]; then + echo "Uninstalling $_installed" + cwd=${PKGDIR}/$_installed set -A _remove -- "${cwd}/+CONTENTS" "${cwd}" @@ -198,7 +196,7 @@ *) set -A _remove -- "$cwd/$c" "${_remove[@]}" ;; esac - done < "${PKGDIR}/$installed/+CONTENTS" + done < "${PKGDIR}/$_installed/+CONTENTS" for _r in "${_remove[@]}" ; do if [ -d "$_r" ]; then