svn commit: r352662 - head/usr.sbin/freebsd-update

Kubilay Kocak koobs at FreeBSD.org
Wed Sep 25 01:23:53 UTC 2019


On 25/09/2019 6:49 am, Michael Gmelin wrote:
> Author: grembo (ports committer)
> Date: Tue Sep 24 20:49:33 2019
> New Revision: 352662
> URL: https://svnweb.freebsd.org/changeset/base/352662
> 
> Log:
>    freebsd-update: Add `updatesready' and `showconfig' commands
>    
>    `freebsd-update updatesready' can be used to check if there are any pending
>    fetched updates that can be installed.
>    
>    `freebsd-update showconfig' writes freebsd-update's configuration to
>    stdout.
>    
>    This also changes the exit code of `freebsd-update install' to 2 in case
>    there are no updates pending to be installed and there wasn't a fetch phase
>    in the same invocation. This allows scripts to tell apart these error
>    conditions without breaking existing jail managers.
>    
>    See freebsd-update(8) for details.
>    
>    PR:		240757, 240177, 229346
>    Reviewed by:	manpages (bcr), sectam (emaste), yuripv
>    Differential Revision:	https://reviews.freebsd.org/D21473

Would love to see these MFC'd. Consistency between freebsd-update on all 
our supported versions for one of our major user features would be awesome.

> Modified:
>    head/usr.sbin/freebsd-update/freebsd-update.8
>    head/usr.sbin/freebsd-update/freebsd-update.sh
> 
> Modified: head/usr.sbin/freebsd-update/freebsd-update.8
> ==============================================================================
> --- head/usr.sbin/freebsd-update/freebsd-update.8	Tue Sep 24 20:36:43 2019	(r352661)
> +++ head/usr.sbin/freebsd-update/freebsd-update.8	Tue Sep 24 20:49:33 2019	(r352662)
> @@ -25,7 +25,7 @@
>   .\"
>   .\" $FreeBSD$
>   .\"
> -.Dd June 14, 2017
> +.Dd September 24, 2019
>   .Dt FREEBSD-UPDATE 8
>   .Os
>   .Sh NAME
> @@ -155,13 +155,24 @@ Note that this command may require up to 500 MB of spa
>   depending on which components of the
>   .Fx
>   base system are installed.
> +.It Cm updatesready
> +Check if there are fetched updates ready to install.
> +Returns exit code 2 if there are no updates to install.
>   .It Cm install
>   Install the most recently fetched updates or upgrade.
> +Returns exit code 2 if there are no updates to install
> +and the
> +.Cm fetch
> +command wasn't passed as an earlier argument in the same
> +invocation.
>   .It Cm rollback
>   Uninstall the most recently installed updates.
>   .It Cm IDS
>   Compare the system against a "known good" index of the
>   installed release.
> +.It Cm showconfig
> +Show configuration options after parsing conffile and command
> +line options.
>   .El
>   .Sh TIPS
>   .Bl -bullet
> 
> Modified: head/usr.sbin/freebsd-update/freebsd-update.sh
> ==============================================================================
> --- head/usr.sbin/freebsd-update/freebsd-update.sh	Tue Sep 24 20:36:43 2019	(r352661)
> +++ head/usr.sbin/freebsd-update/freebsd-update.sh	Tue Sep 24 20:49:33 2019	(r352662)
> @@ -62,9 +62,11 @@ Commands:
>     cron         -- Sleep rand(3600) seconds, fetch updates, and send an
>                     email if updates were found
>     upgrade      -- Fetch upgrades to FreeBSD version specified via -r option
> +  updatesready -- Check if there are fetched updates ready to install
>     install      -- Install downloaded updates or upgrades
>     rollback     -- Uninstall most recently installed updates
>     IDS          -- Compare the system against an index of "known good" files
> +  showconfig   -- Show configuration
>   EOF
>   	exit 0
>   }
> @@ -503,7 +505,8 @@ parse_cmdline () {
>   			;;
>   
>   		# Commands
> -		cron | fetch | upgrade | install | rollback | IDS)
> +		cron | fetch | upgrade | updatesready | install | rollback |\
> +		IDS | showconfig)
>   			COMMANDS="${COMMANDS} $1"
>   			;;
>   
> @@ -827,7 +830,7 @@ install_check_params () {
>   		echo "No updates are available to install."
>   		if [ $ISFETCHED -eq 0 ]; then
>   			echo "Run '$0 fetch' first."
> -			exit 1
> +			exit 2
>   		fi
>   		exit 0
>   	fi
> @@ -3333,6 +3336,21 @@ cmd_upgrade () {
>   	upgrade_run || exit 1
>   }
>   
> +# Check if there are fetched updates ready to install
> +cmd_updatesready () {
> +	# Construct a unique name from ${BASEDIR}
> +	BDHASH=`echo ${BASEDIR} | sha256 -q`
> +
> +	# Check that we have updates ready to install
> +	if ! [ -L ${BDHASH}-install ]; then
> +		echo "No updates are available to install."
> +		exit 2
> +	fi
> +
> +	echo "There are updates available to install."
> +	echo "Run '$0 install' to proceed."
> +}
> +
>   # Install downloaded updates.
>   cmd_install () {
>   	install_check_params
> @@ -3349,6 +3367,13 @@ cmd_rollback () {
>   cmd_IDS () {
>   	IDS_check_params
>   	IDS_run || exit 1
> +}
> +
> +# Output configuration.
> +cmd_showconfig () {
> +	for X in ${CONFIGOPTIONS}; do
> +		echo $X=$(eval echo \$${X})
> +	done
>   }
>   
>   #### Entry point
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
> 




More information about the svn-src-head mailing list