summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukáš Jirkovský <l.jirkovsky@gmail.com>2013-10-04 15:57:08 +0200
committerAllan McRae <allan@archlinux.org>2013-10-14 13:00:50 +1000
commit043f250d0e93f07be60a94c92a027d6f61fc9158 (patch)
tree240e867de3fc10ed51bd09cecf1722c43b17e851
parent2f7e92ad045fb276c8fe88d4793c8edc383d147c (diff)
downloadpacman-043f250d0e93f07be60a94c92a027d6f61fc9158.tar.xz
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>
-rw-r--r--doc/makepkg.8.txt3
-rw-r--r--scripts/makepkg.sh.in13
2 files changed, 14 insertions, 2 deletions
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index ceb7b910..448d447d 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -147,6 +147,9 @@ Options
*-V, \--version*::
Display version information.
+*-C, \--cleanbuild*::
+ 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 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