diff options
author | Joshua I. Haase H. (xihh) <hahj87@gmail.com> | 2012-12-04 21:19:22 -0600 |
---|---|---|
committer | Joshua I. Haase H. (xihh) <hahj87@gmail.com> | 2012-12-04 21:19:22 -0600 |
commit | acc2c792c423c5aa81aa95f0516de7724dba3ab9 (patch) | |
tree | 73cacea8eff5cdfd23f42b740597b5498d152509 /src/chroot-tools/librechroot.gpl2 | |
parent | d11741d73bbf6940c45ee0f2cadea980e9e40785 (diff) | |
parent | 098d7430e6447c4658704c3bcf88ea1ed7a5206b (diff) |
Merge branch 'master' of gitpar:libretools
Conflicts:
librechroot
libremakepkg
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 +} |