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