[rtems-source-builder commit] sb: Add --source-only-download to make download source simple.

Chris Johns chrisj at rtems.org
Thu Oct 12 02:52:03 UTC 2017


Module:    rtems-source-builder
Branch:    master
Commit:    7b68249b57bfdefe8ef95b333cdc595f7622929c
Changeset: http://git.rtems.org/rtems-source-builder/commit/?id=7b68249b57bfdefe8ef95b333cdc595f7622929c

Author:    Chris Johns <chrisj at rtems.org>
Date:      Thu Oct 12 13:42:40 2017 +1100

sb: Add --source-only-download to make download source simple.

This is needed to test #2536.

Add an option to disable any log.

Updates #2536.

---

 source-builder/sb/options.py | 83 ++++++++++++++++++++++++++------------------
 1 file changed, 50 insertions(+), 33 deletions(-)

diff --git a/source-builder/sb/options.py b/source-builder/sb/options.py
index 51407a4..3c3b2ff 100644
--- a/source-builder/sb/options.py
+++ b/source-builder/sb/options.py
@@ -54,34 +54,35 @@ class command_line:
     def __init__(self, argv, optargs, _defaults, command_path):
         self._long_opts = {
             # key                 macro                handler            param  defs   init
-            '--prefix'         : ('_prefix',           self._lo_path,     True,  None,  False),
-            '--topdir'         : ('_topdir',           self._lo_path,     True,  None,  False),
-            '--configdir'      : ('_configdir',        self._lo_path,     True,  None,  False),
-            '--builddir'       : ('_builddir',         self._lo_path,     True,  None,  False),
-            '--sourcedir'      : ('_sourcedir',        self._lo_path,     True,  None,  False),
-            '--tmppath'        : ('_tmppath',          self._lo_path,     True,  None,  False),
-            '--jobs'           : ('_jobs',             self._lo_jobs,     True,  'max', True),
-            '--log'            : ('_logfile',          self._lo_string,   True,  None,  False),
-            '--url'            : ('_url_base',         self._lo_string,   True,  None,  False),
-            '--no-download'    : ('_disable_download', self._lo_bool,     False, '0',   True),
-            '--macros'         : ('_macros',           self._lo_string,   True,  None,  False),
-            '--targetcflags'   : ('_targetcflags',     self._lo_string,   True,  None,  False),
-            '--targetcxxflags' : ('_targetcxxflags',   self._lo_string,   True,  None,  False),
-            '--libstdcxxflags' : ('_libstdcxxflags',   self._lo_string,   True,  None,  False),
-            '--force'          : ('_force',            self._lo_bool,     False, '0',   True),
-            '--quiet'          : ('_quiet',            self._lo_bool,     False, '0',   True),
-            '--trace'          : ('_trace',            self._lo_bool,     False, '0',   True),
-            '--dry-run'        : ('_dry_run',          self._lo_bool,     False, '0',   True),
-            '--warn-all'       : ('_warn_all',         self._lo_bool,     False, '0',   True),
-            '--no-clean'       : ('_no_clean',         self._lo_bool,     False, '0',   True),
-            '--keep-going'     : ('_keep_going',       self._lo_bool,     False, '0',   True),
-            '--always-clean'   : ('_always_clean',     self._lo_bool,     False, '0',   True),
-            '--no-install'     : ('_no_install',       self._lo_bool,     False, '0',   True),
-            '--regression'     : ('_regression',       self._lo_bool,     False, '0',   True),
-            '--host'           : ('_host',             self._lo_triplets, True,  None,  False),
-            '--build'          : ('_build',            self._lo_triplets, True,  None,  False),
-            '--target'         : ('_target',           self._lo_triplets, True,  None,  False),
-            '--help'           : (None,                self._lo_help,     False, None,  False)
+            '--prefix'               : ('_prefix',           self._lo_path,     True,  None,  False),
+            '--topdir'               : ('_topdir',           self._lo_path,     True,  None,  False),
+            '--configdir'            : ('_configdir',        self._lo_path,     True,  None,  False),
+            '--builddir'             : ('_builddir',         self._lo_path,     True,  None,  False),
+            '--sourcedir'            : ('_sourcedir',        self._lo_path,     True,  None,  False),
+            '--tmppath'              : ('_tmppath',          self._lo_path,     True,  None,  False),
+            '--jobs'                 : ('_jobs',             self._lo_jobs,     True,  'max', True),
+            '--log'                  : ('_logfile',          self._lo_string,   True,  None,  False),
+            '--url'                  : ('_url_base',         self._lo_string,   True,  None,  False),
+            '--no-download'          : ('_disable_download', self._lo_bool,     False, '0',   True),
+            '--macros'               : ('_macros',           self._lo_string,   True,  None,  False),
+            '--source-only-download' : ('_source_download',  self._lo_bool,     False, '0',   True),
+            '--targetcflags'         : ('_targetcflags',     self._lo_string,   True,  None,  False),
+            '--targetcxxflags'       : ('_targetcxxflags',   self._lo_string,   True,  None,  False),
+            '--libstdcxxflags'       : ('_libstdcxxflags',   self._lo_string,   True,  None,  False),
+            '--force'                : ('_force',            self._lo_bool,     False, '0',   True),
+            '--quiet'                : ('_quiet',            self._lo_bool,     False, '0',   True),
+            '--trace'                : ('_trace',            self._lo_bool,     False, '0',   True),
+            '--dry-run'              : ('_dry_run',          self._lo_bool,     False, '0',   True),
+            '--warn-all'             : ('_warn_all',         self._lo_bool,     False, '0',   True),
+            '--no-clean'             : ('_no_clean',         self._lo_bool,     False, '0',   True),
+            '--keep-going'           : ('_keep_going',       self._lo_bool,     False, '0',   True),
+            '--always-clean'         : ('_always_clean',     self._lo_bool,     False, '0',   True),
+            '--no-install'           : ('_no_install',       self._lo_bool,     False, '0',   True),
+            '--regression'           : ('_regression',       self._lo_bool,     False, '0',   True),
+            '--host'                 : ('_host',             self._lo_triplets, True,  None,  False),
+            '--build'                : ('_build',            self._lo_triplets, True,  None,  False),
+            '--target'               : ('_target',           self._lo_triplets, True,  None,  False),
+            '--help'                 : (None,                self._lo_help,     False, None,  False)
             }
 
         self.command_path = command_path
@@ -222,6 +223,7 @@ class command_line:
         print('--targetcflags flags   : List of C flags for the target code')
         print('--targetcxxflags flags : List of C++ flags for the target code')
         print('--libstdcxxflags flags : List of C++ flags to build the target libstdc++ code')
+        print('--source-only-download : Only download the source')
         print('--with-<label>         : Add the --with-<label> to the build')
         print('--without-<label>      : Add the --without-<label> to the build')
         print('--rtems-tools path     : Path to an install RTEMS tool set')
@@ -265,13 +267,27 @@ class command_line:
                 self.opts['params'].append(a)
             arg += 1
 
+    def pre_process(self):
+        arg = 0
+        while arg < len(self.args):
+            a = self.args[arg]
+            if a == '--source-only-download':
+                self.args += ['--dry-run',
+                              '--quiet',
+                              '--without-log',
+                              '--without-error-report',
+                              '--without-release-url']
+            arg += 1
+
     def post_process(self, logfile = True):
         # Handle the log first.
-        if logfile:
-            logfiles = self.logfiles()
-        else:
-            logfiles = None
-        log.default = log.log(streams = logfiles)
+        logctrl = self.get_arg('--without-log')
+        if logctrl is not None and logfile:
+            if logfile:
+                logfiles = self.logfiles()
+            else:
+                logfiles = None
+            log.default = log.log(streams = logfiles)
         if self.trace():
             log.tracing = True
         if self.quiet():
@@ -641,6 +657,7 @@ def load(args, optargs = None, defaults = '%{_sbdir}/defaults.mc', logfile = Tru
     o.sb_released()
     o.sb_git()
     o.rtems_options()
+    o.pre_process()
     o.process()
     o.post_process(logfile)
 




More information about the vc mailing list