1#/bin/sh 2 3# 4# Copyright (c) 2025 Peter Holm <pho@FreeBSD.org> 5# 6# SPDX-License-Identifier: BSD-2-Clause 7# 8 9# tmpfs version of rsync.sh 10 11[ `id -u` -ne 0 ] && echo "Must be root!" && exit 1 12 13. ../default.cfg 14 15[ -f "`which rsync`" ] || exit 0 16[ -d /usr/src/sys ] || exit 0 17 18set -eu 19prog=$(basename "$0" .sh) 20log=/tmp/$prog.log 21mount | grep "on $mntpoint " | grep -q /dev/md && umount -f $mntpoint 22[ -c /dev/md$mdstart ] && mdconfig -d -u $mdstart 23mount -t tmpfs dummy $mntpoint 24set +e 25 26mkdir -p $mntpoint/usr/src 27rsync -avrq /usr/src/sys $mntpoint/usr/src; s=$? 28if [ $s -eq 0 ]; then 29 rsync -avrq /usr/src/sys $mntpoint/usr/src; s=$? 30fi 31 32if [ $s -eq 0 ]; then 33 diff -rq /usr/src/sys $mntpoint/usr/src/sys > $log; s=$? 34 [ $s -ne 0 ] && 35 { echo "/usr/src $mntpoint/usr/src differ!"; head -10 $log; } 36fi 37 38while mount | grep -q "on $mntpoint "; do 39 umount $mntpoint || break 40 sleep 1 41done 42rm -f $log 43exit $s 44