#!/bin/bash # Contains code derived from devtools' "makechrootpkg" # Copyright 2011-2012 The Arch Linux Development Team # Copyright 2012 Luke Shumaker # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. sync() { if [[ $CHROOTCOPY = root ]]; then error "Cannot sync the root copy with itself" exit 1 fi lock_open_read 8 "$rootdir" "Locking clean chroot" stat_busy 'Creating clean working copy' local use_rsync=false if type -P btrfs >/dev/null; then [[ -d $copydir ]] && btrfs subvolume delete "$copydir" &>/dev/null btrfs subvolume snapshot "$chrootdir/root" "$copydir" &>/dev/null || use_rsync=true else use_rsync=true fi if $use_rsync; then mkdir -p "$copydir" rsync -a --delete -q -W -x "$CHROOTDIR/$CHROOT/root/" "$copydir" fi stat_done lock_close 8 }