From 043f250d0e93f07be60a94c92a027d6f61fc9158 Mon Sep 17 00:00:00 2001
From: Lukáš Jirkovský <l.jirkovsky@gmail.com>
Date: Fri, 4 Oct 2013 15:57:08 +0200
Subject: Add a -C, --cleanbuild option to clear the source directory before
 building a package.

Implements FS#17175.

[Allan: Minor changes to output strings, fix removing of source directory]
Signed-off-by: Allan McRae <allan@archlinux.org>
---
 scripts/makepkg.sh.in | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

(limited to 'scripts')

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index e36e22b4..86f7edbd 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -63,6 +63,7 @@ ASROOT=0
 CLEANUP=0
 DEP_BIN=0
 FORCE=0
+CLEANBUILD=0
 INFAKEROOT=0
 GENINTEG=0
 HOLDVER=0
@@ -2474,6 +2475,7 @@ usage() {
 	printf -- "$(gettext "Options:")\n"
 	printf -- "$(gettext "  -A, --ignorearch Ignore incomplete %s field in %s")\n" "arch" "$BUILDSCRIPT"
 	printf -- "$(gettext "  -c, --clean      Clean up work files after build")\n"
+        printf -- "$(gettext "  -C, --cleanbuild Remove %s dir before building the package")\n" "\$srcdir/"
 	printf -- "$(gettext "  -d, --nodeps     Skip all dependency checks")\n"
 	printf -- "$(gettext "  -e, --noextract  Do not extract source files (use existing %s dir)")\n" "\$srcdir/"
 	printf -- "$(gettext "  -f, --force      Overwrite existing package")\n"
@@ -2537,8 +2539,8 @@ fi
 ARGLIST=("$@")
 
 # Parse Command Line Options.
-OPT_SHORT="AcdefFghiLmop:rRsSV"
-OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'config:' 'force' 'geninteg'
+OPT_SHORT="AcCdefFghiLmop:rRsSV"
+OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'cleanbuild' 'config:' 'force' 'geninteg'
           'help' 'holdver' 'ignorearch' 'install' 'key:' 'log' 'nobuild' 'nocolor'
           'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'pkg:' 'repackage' 'rmdeps'
           'sign' 'skipchecksums' 'skipinteg' 'skippgpcheck' 'source' 'syncdeps'
@@ -2566,6 +2568,7 @@ while true; do
 		--asroot)         ASROOT=1 ;;
 		-A|--ignorearch)  IGNOREARCH=1 ;;
 		-c|--clean)       CLEANUP=1 ;;
+		-C|--cleanbuild)  CLEANBUILD=1 ;;
 		--check)          RUN_CHECK='y' ;;
 		--config)         shift; MAKEPKG_CONF=$1 ;;
 		-d|--nodeps)      NODEPS=1 ;;
@@ -2975,6 +2978,12 @@ elif (( !REPKG )); then
 	download_sources
 	check_source_integrity
 	(( VERIFYSOURCE )) && exit 0 # $E_OK
+
+	if (( CLEANBUILD )); then
+		msg "$(gettext "Removing existing %s directory...")" "src/"
+		rm -rf "$srcdir"/*
+	fi
+
 	extract_sources
 	if (( PREPAREFUNC )); then
 		run_prepare
-- 
cgit v1.2.3-70-g09d2