commit:     7559946e31712f46dbaa3959a93a35a2afa257bd
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Mon Mar 31 18:30:35 2014 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Tue Apr  1 16:36:36 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=7559946e

roverlay-setup: load parser defaults file

---
 Makefile                        |  5 ++++-
 files/setup.defaults            |  6 ++++++
 files/setup.defaults.others     |  6 ++++++
 roverlay/setupscript/runtime.py | 13 ++++++++++---
 4 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index 06933f8..d5e21cd 100644
--- a/Makefile
+++ b/Makefile
@@ -207,7 +207,10 @@ install-data:
                $(DATADIR)/roverlay/shlib $(DATADIR)/roverlay/hooks \
                $(DATADIR)/roverlay/eclass $(DATADIR)/roverlay/mako_templates
 
-ifneq ($(ROVERLAY_TARGET_TYPE),gentoo)
+ifeq ($(ROVERLAY_TARGET_TYPE),gentoo)
+       install -m 0644 -- files/setup.defaults $(DATADIR)/setup.defaults
+else
+       install -m 0644 -- files/setup.defaults.others $(DATADIR)/setup.defaults
        install -m 0644 -- $(LICENSES_FILE) $(DATADIR)/roverlay/licenses
 endif
        install -m 0644 -t $(DATADIR)/roverlay/hooks files/hooks/*.sh

diff --git a/files/setup.defaults b/files/setup.defaults
new file mode 100644
index 0000000..b9e06d7
--- /dev/null
+++ b/files/setup.defaults
@@ -0,0 +1,6 @@
+# site-specific defaults for roverlay-setup
+#  each line lists one "<key> = <value>" pair,
+#  where <key> is the dest of a parser option
+#  (see roverlay.setupscript.runtime)
+#
+target_type = gentoo

diff --git a/files/setup.defaults.others b/files/setup.defaults.others
new file mode 100644
index 0000000..4e4c173
--- /dev/null
+++ b/files/setup.defaults.others
@@ -0,0 +1,6 @@
+# site-specific defaults for roverlay-setup
+#  each line lists one "<key> = <value>" pair,
+#  where <key> is the dest of a parser option
+#  (see roverlay.setupscript.runtime)
+#
+target_type = foreign

diff --git a/roverlay/setupscript/runtime.py b/roverlay/setupscript/runtime.py
index b9b7ed0..5576f1d 100644
--- a/roverlay/setupscript/runtime.py
+++ b/roverlay/setupscript/runtime.py
@@ -23,6 +23,7 @@ import roverlay.setupscript.initenv
 import roverlay.setupscript.hookenv
 
 import roverlay.static.targetenv
+import roverlay.util.mapreader
 
 
 if sys.hexversion >= 0x3000000:
@@ -389,9 +390,6 @@ class SetupEnvironment ( 
roverlay.runtime.IndependentRuntimeEnvironment ):
    def get_parser_defaults ( self ):
       defaults = {}
 
-      if 'ROVERLAY_TARGET_TYPE' in os.environ:
-         defaults ['target_type'] = os.environ ['ROVERLAY_TARGET_TYPE']
-
       if self.is_installed():
          instinfo = self.INSTALLINFO
          defaults.update ({
@@ -417,6 +415,15 @@ class SetupEnvironment ( 
roverlay.runtime.IndependentRuntimeEnvironment ):
          })
       # -- end if
 
+      defaults_file = defaults['data_root'] + os.sep + 'setup.defaults'
+      if os.path.isfile ( defaults_file ):
+         dparser = roverlay.util.mapreader.DictFileParser ( r'\s*=\s*' )
+         dparser.read_file ( defaults_file )
+         defaults.update ( dparser.make_result() )
+
+      if 'ROVERLAY_TARGET_TYPE' in os.environ:
+         defaults ['target_type'] = os.environ ['ROVERLAY_TARGET_TYPE']
+
       return defaults
    # --- end of get_parser_defaults (...) ---
 

Reply via email to