diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-11-30 16:07:48 -0500 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-11-30 16:07:48 -0500 |
commit | d602c1d5d462100313a2c6c47434c652444ba7fd (patch) | |
tree | 667478e647baa695dff1cc61074799d4153dea55 /src/chroot-tools/librechroot.gpl2 | |
parent | aa8b0eee0187ca3e2ae1b8ecdad651f4846d4049 (diff) |
move librechroot's sync into it's own file for licensing reasons
Diffstat (limited to 'src/chroot-tools/librechroot.gpl2')
-rw-r--r-- | src/chroot-tools/librechroot.gpl2 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/chroot-tools/librechroot.gpl2 b/src/chroot-tools/librechroot.gpl2 new file mode 100644 index 0000000..6ba361f --- /dev/null +++ b/src/chroot-tools/librechroot.gpl2 @@ -0,0 +1,40 @@ +#!/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 +} |