On Sun, Jul 20, 2014 at 03:52:14PM +0800, Nathanael Rensen wrote:
> Since the switch to SHA256, sysmerge(8) has stopped auto-upgrading files 
> without
> local changes.

Oh right, I forgot that part. Thanks, I'll have a look.


> 
> $ diff -u a b | grep -E '^\+' | sed '1d'
> +SHA256 (./etc/rc) = 
> 0e1cb2e6c6d11941dab14853a8ab1888f1b14fad6588fa3e6230b8ef16b62ffd
> 
> $ diff -u a b | grep -E '^\+' | sed '1d' | awk '{print $3}'
> =
> 
> $ diff -u a b | sed -n 's/^+SHA256 (\(.*\)).*/\1/p'
> ./etc/rc
> 
> Index: sysmerge.sh
> ===================================================================
> RCS file: /cvs/src/usr.sbin/sysmerge/sysmerge.sh,v
> retrieving revision 1.142
> diff -u -p -r1.142 sysmerge.sh
> --- sysmerge.sh       18 Jul 2014 10:43:29 -0000      1.142
> +++ sysmerge.sh       20 Jul 2014 07:20:45 -0000
> @@ -194,7 +194,7 @@ sm_populate() {
>                       fi
>  
>                       # set auto-upgradable files
> -                     _D=$(diff -u ${WRKDIR}/${i} ${DESTDIR}/${DBDIR}/${i} | 
> grep -E '^\+' | sed '1d' | awk '{print $3}')
> +                     _D=$(diff -u ${WRKDIR}/${i} ${DESTDIR}/${DBDIR}/${i} | 
> sed -n 's/^+SHA256 (\(.*\)).*/\1/p')
>                       for _d in ${_D}; do
>                               # 2>/dev/null: if file got removed manually but 
> is still in the sum file
>                               CURSUM=$(cd ${DESTDIR:=/} && sha256 ${_d} 
> 2>/dev/null)
> 
> Nathanael
> 

-- 
Antoine

Reply via email to