version 1.63, 2021/12/09 02:23:15 |
version 1.64, 2021/12/09 02:37:38 |
|
|
} |
} |
|
|
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[*]:-}" ] || |
|
|
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 |
|
|
fetch "$CFILE" |
if ! [[ -n "$LOCALDIR" && -e "$CFILE" ]]; then |
! signify -qVep "$FWPUB_KEY" -x "$CFILE" -m "$CFILE" && |
fetch "$CFILE" |
echo "Signature check of SHA256.sig failed" >&2 && exit 1 |
! signify -qVep "$FWPUB_KEY" -x "$CFILE" -m "$CFILE" && |
|
echo "Signature check of SHA256.sig failed" >&2 && exit 1 |
|
fi |
|
|
for d in "${devices[@]}"; do |
for d in "${devices[@]}"; do |
f="${d##*:}" |
f="${d##*:}" |
|
|
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 |