From 97a2d2414a7f9d4abce3a40320fe9e0883155884 Mon Sep 17 00:00:00 2001
From: Pierre Schmitz <pierre@archlinux.de>
Date: Sun, 7 Apr 2013 16:00:03 +0200
Subject: [PATCH] mkarchroot: Fix creation of btrfs snapshot and remove force
 option

---
 bash_completion.in |  2 +-
 mkarchroot.in      | 20 +++++++-------------
 zsh_completion.in  |  1 -
 3 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/bash_completion.in b/bash_completion.in
index cd959fc..9395d3a 100644
--- a/bash_completion.in
+++ b/bash_completion.in
@@ -53,7 +53,7 @@ _mkarchroot() {
 
   case $cur in
     -*)
-       COMPREPLY=( $( compgen -W '-C -M -c -f -h -n -r -u' -- "$cur" ) )
+       COMPREPLY=( $( compgen -W '-C -M -c -h -n -r -u' -- "$cur" ) )
        ;;
     *)
       _filedir
diff --git a/mkarchroot.in b/mkarchroot.in
index 6598089..5c1298b 100644
--- a/mkarchroot.in
+++ b/mkarchroot.in
@@ -12,7 +12,6 @@ m4_include(lib/common.sh)
 
 CHROOT_VERSION='v3'
 
-FORCE='n'
 RUN=''
 NOCOPY='n'
 
@@ -26,7 +25,6 @@ usage() {
 	echo ' options:'
 	echo '    -r <app>      Run "app" within the context of the chroot'
 	echo '    -u            Update the chroot via pacman'
-	echo '    -f            Force overwrite of files in the working-dir'
 	echo '    -C <file>     Location of a pacman config file'
 	echo '    -M <file>     Location of a makepkg config file'
 	echo '    -n            Do not copy config files into the chroot'
@@ -39,7 +37,6 @@ while getopts 'r:ufnhC:M:c:' arg; do
 	case "${arg}" in
 		r) RUN="$OPTARG" ;;
 		u) RUN='pacman -Syu --noconfirm' ;;
-		f) FORCE='y' ;;
 		C) pac_conf="$OPTARG" ;;
 		M) makepkg_conf="$OPTARG" ;;
 		n) NOCOPY='y' ;;
@@ -152,18 +149,18 @@ if [[ -n $RUN ]]; then
 	# }}}
 else
 	# {{{ build chroot
-	if [[ -e $working_dir && $FORCE = 'n' ]]; then
-		die "Working directory '${working_dir}' already exists - try using -f"
+	if [[ -e $working_dir ]]; then
+		die "Working directory '${working_dir}' already exists"
 	fi
 
-	if [[ ! -d "${working_dir}" ]]; then
-		mkdir -p "${working_dir}"
-	fi
+	mkdir -p "${working_dir}"
 
 	if [[ "$(stat -f -c %T "${working_dir}")" == btrfs ]]; then
-		if { type -P btrfs && btrfs subvolume create "${working_dir}"; } &>/dev/null; then
-			chmod 0755 "${working_dir}"
+		rmdir "${working_dir}"
+		if ! btrfs subvolume create "${working_dir}"; then
+			die "Couldn't create subvolume for '${working_dir}'"
 		fi
+		chmod 0755 "${working_dir}"
 	fi
 
 	chroot_lock
@@ -173,9 +170,6 @@ else
 		pacargs+=("--config=${pac_conf}")
 	fi
 
-	if [[ $FORCE = 'y' ]]; then
-		pacargs+=("--force")
-	fi
 	if ! pacstrap -GMcd "${working_dir}" "${pacargs[@]}" "$@"; then
 		die 'Failed to install all packages'
 	fi
diff --git a/zsh_completion.in b/zsh_completion.in
index 727112a..c3abdfd 100644
--- a/zsh_completion.in
+++ b/zsh_completion.in
@@ -42,7 +42,6 @@ _makechrootpkg_args=(
 _mkarchroot_args=(
 	'-r[Run a program within the context of the chroot]:app'
 	'-u[Update the chroot via pacman]'
-	'-f[Force overwrite of files in the working-dir]'
 	'-C[Location of a pacman config file]:pacman_config:_files'
 	'-M[Location of a makepkg config file]:makepkg_config:_files'
 	'-n[Do not copy config files into the chroot]'
-- 
GitLab