[BACK]Return to fw_install.sh CVS log [TXT][DIR] Up to [local] / openbsd / fw_update

Diff for /openbsd/fw_update/fw_install.sh between version 1.60 and 1.64

version 1.60, 2021/12/09 02:09:52 version 1.64, 2021/12/09 02:37:38
Line 61 
Line 61 
 fetch() {  fetch() {
         local _file=$1 _user=_file _exit          local _file=$1 _user=_file _exit
   
         >"$_file"  
         chown "$_user" "$_file"  
   
         # If we're not in the installer, we have su(1)          # If we're not in the installer, we have su(1)
         # and doas(1) is unlikely to be configured.          # and doas(1) is unlikely to be configured.
         if [ -x /usr/bin/su ]; then          if [ -x /usr/bin/su ]; then
                 /usr/bin/su -s /bin/ksh "$_user" -c \                  /usr/bin/su -s /bin/ksh "$_user" -c \
                     "/usr/bin/ftp -D 'Get/Verify' -Vm \                      "/usr/bin/ftp -D 'Get/Verify' -Vm \
                         -o '$_file' '${FWURL}/${_file}'"                          -o- '${FWURL}/${_file}'" > "$_file"
                 _exit="$?"                  _exit="$?"
         else          else
                 /usr/bin/doas -u "$_user" \                  /usr/bin/doas -u "$_user" \
                     ftp -D 'Get/Verify' -Vm \                      ftp -D 'Get/Verify' -Vm \
                         -o "$_file" "${FWURL}/${_file}"                          -o- "${FWURL}/${_file}" > "$_file"
                 _exit="$?"                  _exit="$?"
         fi          fi
   
Line 83 
Line 80 
                 echo "Cannot fetch $_file" >&2                  echo "Cannot fetch $_file" >&2
                 return 1                  return 1
         fi          fi
   
         chown root "$_file"  
 }  }
   
 verify() {  verify() {
Line 187 
Line 182 
 }  }
   
 usage() {  usage() {
         echo "Usage: fw_install [ -d dir ] [ driver | file [ ... ] ]"          echo "Usage: fw_install [ -d dir | -L dir ] [ driver | file [ ... ] ]"
         exit 2          exit 2
 }  }
   
 DOWNLOADDIR=  DOWNLOADDIR=
 while getopts d: name  LOCALDIR=
   while getopts d:L: name
 do  do
        case "$name" in         case "$name" in
        d) DOWNLOADDIR=$OPTARG ;;         d) DOWNLOADDIR=$OPTARG ;;
          L) LOCALDIR=$OPTARG    ;;
        ?) usage 2 ;;         ?) usage 2 ;;
        esac         esac
 done  done
 shift $((OPTIND - 1))  shift $((OPTIND - 1))
   
   if [[ -n "${DOWNLOADDIR:-}" && -n "${LOCALDIR:-}" ]]; then
           echo "Cannot use -d and -L" >&2
           usage 2
   fi
   
 set -A devices -- "$@"  set -A devices -- "$@"
   
 [ "${devices[*]:-}" ] ||  [ "${devices[*]:-}" ] ||
Line 233 
Line 235 
                 echo "Unable to use $DOWNLOADDIR, make sure it is a directory"                  echo "Unable to use $DOWNLOADDIR, make sure it is a directory"
                 exit 2                  exit 2
         fi          fi
   elif [ "$LOCALDIR" ]; then
           if ! cd "$LOCALDIR"; then
                   echo "Unable to use $LOCALDIR, make sure it is a directory"
                   exit 2
           fi
 else  else
         TMPDIR=$( tmpdir "${DESTDIR}/tmp/fw_install" )          TMPDIR=$( tmpdir "${DESTDIR}/tmp/fw_install" )
         cd "$TMPDIR"          cd "$TMPDIR"
 fi  fi
   
 # To unpriv we need to let the unpriv user into this dir  if ! [[ -n "$LOCALDIR" && -e "$CFILE" ]]; then
 chmod go+x .          fetch "$CFILE"
           ! signify -qVep "$FWPUB_KEY" -x "$CFILE" -m "$CFILE" &&
               echo "Signature check of SHA256.sig failed" >&2 && exit 1
   fi
   
 fetch "$CFILE"  
 ! signify -qVep "$FWPUB_KEY" -x "$CFILE" -m "$CFILE" &&  
     echo "Signature check of SHA256.sig failed" >&2 && exit 1  
   
 for d in "${devices[@]}"; do  for d in "${devices[@]}"; do
         f="${d##*:}"          f="${d##*:}"
         if [ "$f" = "$d" ]; then          if [ "$f" = "$d" ]; then
                 f=$( firmware_filename "$d" || true )                  f=$( firmware_filename "$d" || true )
                 [ "$f" ] || continue                  [ "$f" ] || continue
         else          else
             d="${d%:*}"                  d="${d%:*}"
         fi          fi
   
         set -A installed -- $( installed_firmware "$d" )          set -A installed -- $( installed_firmware "$d" )
Line 266 
Line 272 
         fi          fi
   
         if [ ! -e "$f" ]; then          if [ ! -e "$f" ]; then
                   [ "$LOCALDIR" ] && echo "Cannot install $f, not found" >&2 && continue
                 fetch  "$f" || continue                  fetch  "$f" || continue
                 verify "$f" || continue                  verify "$f" || continue
         elif [ "${DOWNLOADDIR:-}" ]; then          elif [ "${DOWNLOADDIR:-}" ]; then
                 echo "Already have $f"                  echo "Already have $f"
                   verify "$f" || continue
         fi          fi
   
         [ "${DOWNLOADDIR:-}" ] && continue          [ "${DOWNLOADDIR:-}" ] && continue

Legend:
Removed from v.1.60  
changed lines
  Added in v.1.64

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>