diff options
author | Andrew Fresh <afresh1@cvs.openbsd.org> | 2024-11-04 00:34:48 +0000 |
---|---|---|
committer | Andrew Fresh <afresh1@cvs.openbsd.org> | 2024-11-04 00:34:48 +0000 |
commit | 772213d11137fd0b211101a2051627b9c86fe9e5 (patch) | |
tree | 4768ea67bc865b6d8a563e57e00597d53d0d384b | |
parent | 33667937edac44b1df0e60c1ad16db6df60154c6 (diff) |
Make fw_update -p consistent
Previously, if using fw_update -Fp ..., the argument to -p was
treated as a destination path, unless it looked like a URL.
This is too complex, if we want to be able to change the download
destination, that wll need to be a new option.
-rw-r--r-- | usr.sbin/fw_update/fw_update.8 | 32 | ||||
-rw-r--r-- | usr.sbin/fw_update/fw_update.sh | 31 |
2 files changed, 21 insertions, 42 deletions
diff --git a/usr.sbin/fw_update/fw_update.8 b/usr.sbin/fw_update/fw_update.8 index bbe17499401..94398898308 100644 --- a/usr.sbin/fw_update/fw_update.8 +++ b/usr.sbin/fw_update/fw_update.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: fw_update.8,v 1.4 2024/10/12 23:56:23 afresh1 Exp $ +.\" $OpenBSD: fw_update.8,v 1.5 2024/11/04 00:34:47 afresh1 Exp $ .\" .\" Copyright (c) 2011 Alexander Hall <alexander@beard.se> .\" @@ -14,12 +14,12 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: October 12 2024 $ +.Dd $Mdocdate: November 4 2024 $ .Dt FW_UPDATE 8 .Os .Sh NAME .Nm fw_update -.Nd install non-free firmware packages +.Nd install non-free firmware .Sh SYNOPSIS .Nm .Op Fl adFnv @@ -28,12 +28,12 @@ .Sh DESCRIPTION The .Nm -utility installs, updates, or deletes firmware packages for +utility installs, updates, or deletes firmware for .Ar driver from the Internet. By default, .Nm -tries to determine which firmware packages are needed. +tries to determine which firmware are needed. .Pp Since firmware with an acceptable license is already present in .Ox , @@ -58,31 +58,25 @@ If used in conjunction with .Fl a , delete firmware for all drivers. .It Fl F -Download firmware only. -By default downloads to the current directory. -Specifying a URL with -.Fl p -downloads from that URL, -specifying a path downloads to that directory. +Download SHA256.sig and firmware .tgz to the current directory. .It Fl n Dry run. -Do not actually install or update any firmware packages; +Do not actually install or update any firmware; just report the steps that would be taken. .It Fl p Ar path -Use the firmware found at package repository +Use .Ar path , -being either a local directory or a URL, -instead of the default location. +either a local directory or a URL, +as the source for firmware instead of the default location. .It Fl v Turn on verbose output. This flag can be specified multiple times for increased verbosity. .El .Pp Firmware is downloaded from release-specific directories at -.Lk http://firmware.openbsd.org/firmware/ . -The files are in the format required by -.Xr pkg_add 1 , -but direct use of pkg_add is discouraged. +.Lk http://firmware.openbsd.org/firmware/ +unless overridden with +.Fl p . .Sh ENVIRONMENT .Bl -tag -width DESTDIRXXX .It Ev DESTDIR diff --git a/usr.sbin/fw_update/fw_update.sh b/usr.sbin/fw_update/fw_update.sh index 63a18f82fdc..6216971bae4 100644 --- a/usr.sbin/fw_update/fw_update.sh +++ b/usr.sbin/fw_update/fw_update.sh @@ -1,5 +1,5 @@ #!/bin/ksh -# $OpenBSD: fw_update.sh,v 1.57 2024/10/12 23:56:23 afresh1 Exp $ +# $OpenBSD: fw_update.sh,v 1.58 2024/11/04 00:34:47 afresh1 Exp $ # # Copyright (c) 2021,2023 Andrew Hewus Fresh <afresh1@openbsd.org> # @@ -500,7 +500,7 @@ do d) DELETE=true ;; F) OPT_F=true ;; n) DRYRUN=true ;; - p) LOCALSRC="$OPTARG" ;; + p) FWURL="$OPTARG" ;; v) ((++VERBOSE)) ;; :) warn "${0##*/}: option requires an argument -- -$OPTARG" @@ -517,33 +517,18 @@ shift $((OPTIND - 1)) # Progress bars, not spinner When VERBOSE > 1 ((VERBOSE > 1)) && ENABLE_SPINNER=false -if [ "$LOCALSRC" ]; then - if [[ $LOCALSRC = @(ftp|http?(s))://* ]]; then - FWURL="${LOCALSRC}" - LOCALSRC= - else - LOCALSRC="${LOCALSRC#file:}" - ! [ -d "$LOCALSRC" ] && - warn "The path must be a URL or an existing directory" && - exit 1 - fi +if [[ $FWURL != @(ftp|http?(s))://* ]]; then + FWURL="${FWURL#file:}" + ! [ -d "$FWURL" ] && + warn "The path must be a URL or an existing directory" && + exit 1 + FWURL="file:$FWURL" fi # "Download only" means local dir and don't install if [ "$OPT_F" ]; then INSTALL=false LOCALSRC="${LOCALSRC:-.}" - - # Always check for latest CFILE and so latest firmware - if [ -e "$LOCALSRC/$CFILE" ]; then - mv "$LOCALSRC/$CFILE" "$LOCALSRC/$CFILE-OLD" - if check_cfile; then - rm -f "$LOCALSRC/$CFILE-OLD" - else - mv "$LOCALSRC/$CFILE-OLD" "$LOCALSRC/$CFILE" - warn "Using existing $CFILE" - fi - fi elif [ "$LOCALSRC" ]; then DOWNLOAD=false fi |