Implements FS#17175.
---
 doc/makepkg.8.txt     |  3 +++
 scripts/makepkg.sh.in | 11 ++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index fcafb08..b2d5dbe 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -147,6 +147,9 @@ Options
 *-V, \--version*::
        Display version information.
 
+*\--clearsource*::
+       Remove the $srcdir before building the package.
+
 *\--allsource*::
        Do not actually build the package, but build a source-only tarball that
        includes all sources, including those that are normally download via
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 67ec240..891461f 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -63,6 +63,7 @@ ASROOT=0
 CLEANUP=0
 DEP_BIN=0
 FORCE=0
+CLEARSRC=0
 INFAKEROOT=0
 GENINTEG=0
 HOLDVER=0
@@ -2504,6 +2505,7 @@ usage() {
        printf -- "$(gettext "  -s, --syncdeps   Install missing dependencies 
with %s")\n" "pacman"
        printf -- "$(gettext "  -S, --source     Generate a source-only tarball 
without downloaded sources")\n"
        printf -- "$(gettext "  -V, --version    Show version information and 
exit")\n"
+       printf -- "$(gettext "  --clearsource    Remove %s dir before building 
the package")\n" "src/"
        printf -- "$(gettext "  --allsource      Generate a source-only tarball 
including downloaded sources")\n"
        printf -- "$(gettext "  --verifysource   Download source files (if 
needed) and perform integrity checks")\n"
        printf -- "$(gettext "  --asroot         Allow %s to run as root 
user")\n" "makepkg"
@@ -2553,7 +2555,7 @@ ARGLIST=("$@")
 
 # Parse Command Line Options.
 OPT_SHORT="AcdefFghiLmop:rRsSV"
-OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'config:' 'force' 'geninteg'
+OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'clearsource' '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'
@@ -2581,6 +2583,7 @@ while true; do
                --asroot)         ASROOT=1 ;;
                -A|--ignorearch)  IGNOREARCH=1 ;;
                -c|--clean)       CLEANUP=1 ;;
+               --clearsource)    CLEARSRC=1 ;;
                --check)          RUN_CHECK='y' ;;
                --config)         shift; MAKEPKG_CONF=$1 ;;
                -d|--nodeps)      NODEPS=1 ;;
@@ -2990,6 +2993,12 @@ elif (( !REPKG )); then
        download_sources
        check_source_integrity
        (( VERIFYSOURCE )) && exit 0 # $E_OK
+
+       if (( CLEARSRC )); then
+               msg "$(gettext "Removing content of existing %s directory...")" 
"src/"
+               rm -rf "$srcdir/*"
+       fi
+
        extract_sources
        if (( PREPAREFUNC )); then
                run_prepare
-- 
1.8.4


Reply via email to