btrfs COW allow almost gratuitous create/destroy chroot copy.

To allow automatic parallel builds the default copy value is $RANDOM when the
underlying filesytem is btrfs.

Signed-off-by: Sébastien Luttringer <[email protected]>
---
 makechrootpkg.in | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/makechrootpkg.in b/makechrootpkg.in
index c8b5f87..7a780df 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -55,7 +55,7 @@ usage() {
        echo '-I <pkg>   Install a package into the working copy of the chroot'
        echo '-l <copy>  The directory to use as the working copy of the chroot'
        echo '           Useful for maintaining multiple copies.'
-       echo "           Default: $default_copy"
+       echo "           Default: $default_copy or random for btrfs"
        echo '-n         Run namcap on the package'
        exit 1
 }
@@ -80,12 +80,17 @@ chrootdir=$(readlink -e "$passeddir")
 # Detect chrootdir filesystem type
 chroottype=$(stat -f -c %T "$chrootdir")
 
+# Define copy directory
 if [[ ${copy:0:1} = / ]]; then
        copydir=$copy
-else
-       [[ -z $copy ]] && copy=$default_copy
+elif [[ -n $copy ]]; then
        copydir="$chrootdir/$copy"
+elif [[ "$chroottype" == btrfs ]]; then
+       copydir="$chrootdir/$RANDOM"
+else
+       copydir="$chrootdir/$default_copy"
 fi
+copy=${copydir##*/}
 
 # Pass all arguments after -- right to makepkg
 makepkg_args="$makepkg_args ${*:$OPTIND}"
-- 
Sébastien "Seblu" Luttringer

Reply via email to