| version 1.67, 2021/12/11 03:25:09 |
version 1.68, 2021/12/11 03:56:35 |
|
|
| exit 2 |
exit 2 |
| } |
} |
| |
|
| DOWNLOADDIR= |
INSTALL=true |
| LOCALDIR= |
DOWNLOAD=true |
| while getopts d:L: name |
LOCALDIR=false |
| |
|
| |
while getopts dL name |
| do |
do |
| case "$name" in |
case "$name" in |
| d) DOWNLOADDIR=$OPTARG ;; |
# "download only" means local dir and don't install |
| L) LOCALDIR=$OPTARG ;; |
d) LOCALDIR=true INSTALL=false ;; |
| |
L) LOCALDIR=true ;; |
| ?) usage 2 ;; |
?) usage 2 ;; |
| esac |
esac |
| done |
done |
| shift $((OPTIND - 1)) |
shift $((OPTIND - 1)) |
| |
|
| if [[ -n "$DOWNLOADDIR" && -n "$LOCALDIR" ]]; then |
# If we're installing from a local dir |
| echo "Cannot use -d and -L" >&2 |
# we don't want to download anything |
| usage 2 |
"$LOCALDIR" && "$INSTALL" && DOWNLOAD=false |
| fi |
|
| |
|
| set -A devices -- "$@" |
set -A devices -- "$@" |
| |
|
|
|
| f="${devices[$i]}" |
f="${devices[$i]}" |
| d=$( firmware_devicename "$f" ) |
d=$( firmware_devicename "$f" ) |
| if [ -e "$f" ]; then |
if [ -e "$f" ]; then |
| if [ "$DOWNLOADDIR" ]; then |
if "$DOWNLOAD"; then |
| echo "Cannot download local file $f" >&2 |
echo "Cannot download local file $f" >&2 |
| exit 2 |
exit 2 |
| fi |
fi |
|
|
| i=$((i + 1)) |
i=$((i + 1)) |
| done |
done |
| |
|
| if [ "$DOWNLOADDIR" ]; then |
if ! "$LOCALDIR"; then |
| if ! cd "$DOWNLOADDIR"; then |
cd "$( tmpdir "${DESTDIR}/tmp/fw_install" )" |
| echo "Unable to use $DOWNLOADDIR, make sure it is a directory" |
|
| exit 2 |
|
| fi |
|
| elif [ "$LOCALDIR" ]; then |
|
| if ! cd "$LOCALDIR"; then |
|
| echo "Unable to use $LOCALDIR, make sure it is a directory" |
|
| exit 2 |
|
| fi |
|
| else |
|
| TMPDIR=$( tmpdir "${DESTDIR}/tmp/fw_install" ) |
|
| cd "$TMPDIR" |
|
| fi |
fi |
| |
|
| if ! [[ -n "$LOCALDIR" && -e "$CFILE" ]]; then |
if "$DOWNLOAD" && ! [[ -e "$CFILE" ]]; then |
| fetch "$CFILE" |
fetch "$CFILE" |
| ! signify -qVep "$FWPUB_KEY" -x "$CFILE" -m "$CFILE" && |
! signify -qVep "$FWPUB_KEY" -x "$CFILE" -m "$CFILE" && |
| echo "Signature check of SHA256.sig failed" >&2 && exit 1 |
echo "Signature check of SHA256.sig failed" >&2 && exit 1 |
|
|
| |
|
| set -A installed -- $( installed_firmware "$d" ) |
set -A installed -- $( installed_firmware "$d" ) |
| |
|
| if [ ! "$DOWNLOADDIR" ] && [ "${installed[*]:-}" ]; then |
if "$INSTALL" && [ "${installed[*]:-}" ]; then |
| for i in "${installed[@]}"; do |
for i in "${installed[@]}"; do |
| if [ "${f##*/}" = "$i.tgz" ]; then |
if [ "${f##*/}" = "$i.tgz" ]; then |
| echo "$i already installed" |
echo "$i already installed" |
|
|
| fi |
fi |
| |
|
| if [ ! -e "$f" ]; then |
if [ ! -e "$f" ]; then |
| [ "$LOCALDIR" ] && echo "Cannot install $f, not found" >&2 && continue |
"$INSTALL" && ! "$DOWNLOAD" && |
| |
echo "Cannot install $f, not found" >&2 && continue |
| fetch "$f" || continue |
fetch "$f" || continue |
| verify "$f" || continue |
verify "$f" || continue |
| elif [ "$DOWNLOADDIR" ]; then |
elif $DOWNLOAD; then |
| echo "Already have $f" |
echo "Already have $f" |
| verify "$f" || continue |
verify "$f" || continue |
| fi |
fi |
| |
|
| [ "$DOWNLOADDIR" ] && continue |
"$INSTALL" || continue |
| |
|
| if [ "${installed[*]:-}" ]; then |
if [ "${installed[*]:-}" ]; then |
| for i in "${installed[@]}"; do |
for i in "${installed[@]}"; do |