public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/tools/, roverlay/config/, roverlay/
Date: Sun, 30 Jun 2013 15:58:11 +0000 (UTC)	[thread overview]
Message-ID: <1372194481.df58d07cbadab7bdd5f6a494355c8dac9f840d09.dywi@gentoo> (raw)

commit:     df58d07cbadab7bdd5f6a494355c8dac9f840d09
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Tue Jun 25 21:08:01 2013 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Tue Jun 25 21:08:01 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=df58d07c

EVENT_HOOK_RESTRICT, roverlay.hook

---
 roverlay/config/const.py    |   4 ++
 roverlay/config/entrymap.py |  29 +++++---
 roverlay/hook.py            | 169 ++++++++++++++++++++++++++++++++++++++++++++
 roverlay/main.py            |   7 +-
 roverlay/tools/shenv.py     |  22 ++----
 5 files changed, 204 insertions(+), 27 deletions(-)

diff --git a/roverlay/config/const.py b/roverlay/config/const.py
index 4ee9d45..f9a2e14 100644
--- a/roverlay/config/const.py
+++ b/roverlay/config/const.py
@@ -78,6 +78,10 @@ _CONSTANTS = dict (
       manifest_implementation = 'default',
    ),
 
+   EVENT_HOOK = dict (
+      default_exe_relpath = [ 'hooks', 'mux.sh' ],
+   ),
+
    TOOLS = dict (
       EBUILD = dict (
          exe    = "/usr/bin/ebuild",

diff --git a/roverlay/config/entrymap.py b/roverlay/config/entrymap.py
index 136b4b5..6a282d9 100644
--- a/roverlay/config/entrymap.py
+++ b/roverlay/config/entrymap.py
@@ -306,6 +306,12 @@ CONFIG_ENTRY_MAP = dict (
       value_type  = yesno,
    ),
 
+   overlay_distmap_file = dict (
+      path        = [ 'OVERLAY', 'DISTMAP', 'dbfile', ]
+      value_type  = 'fs_file',
+      description = 'distmap file',
+   ),
+
    # * alias
    backup_desc               = 'overlay_backup_desc',
    eclass                    = 'overlay_eclass',
@@ -316,6 +322,7 @@ CONFIG_ENTRY_MAP = dict (
    distdir_strategy          = 'overlay_distdir_strategy',
    distdir_flat              = 'overlay_distdir_flat',
    distdir_verify            = 'overlay_distdir_verify',
+   distmap_file              = 'overlay_distmap_file',
 
    # --- overlay
 
@@ -449,14 +456,22 @@ CONFIG_ENTRY_MAP = dict (
       description = 'filter shell env',
    ),
 
-   hook_script = dict (
-      path = [ 'SHELL_ENV', 'hook', ],
-      value_type = 'fs_file',
+   event_hook = dict (
+      path        = [ 'EVENT_HOOK', 'exe', ],
+      value_type  = 'fs_file',
       description = 'script that is run on certain events, e.g. overlay_success',
    ),
 
+   event_hook_restrict = dict (
+      path        = [ 'EVENT_HOOK', 'restrict', ],
+      value_type  = 'list:str',
+      description = 'mask for running hooks',
+   ),
+
+
    # * alias
-   hook = 'hook_script',
+   hook          = 'event_hook',
+   hook_restrict = 'event_hook_restrict',
 
 
    # == other ==
@@ -467,12 +482,6 @@ CONFIG_ENTRY_MAP = dict (
       description = 'directory for cache data',
    ),
 
-   tmpdir = dict (
-      path        = [ 'TMPDIR', 'root', ],
-      value_type  = 'fs_dir',
-      description = 'directory for temporary data',
-   ),
-
    nosync = dict (
       value_type  = yesno,
       description = 'forbid/allow syncing with remotes',

diff --git a/roverlay/hook.py b/roverlay/hook.py
new file mode 100644
index 0000000..3b13315
--- /dev/null
+++ b/roverlay/hook.py
@@ -0,0 +1,169 @@
+# R overlay -- run roverlay hooks (shell scripts)
+# -*- coding: utf-8 -*-
+# Copyright (C) 2013 André Erdmann <dywi@mailerd.de>
+# Distributed under the terms of the GNU General Public License;
+# either version 2 of the License, or (at your option) any later version.
+
+import os.path
+import logging
+
+import roverlay.config
+import roverlay.tools.shenv
+
+__all__ = [ 'run_hook', 'phase_allowed', ]
+
+LOGGER = logging.getLogger ( 'event_hook' )
+
+
+_EVENT_SCRIPT = None
+
+# None|iterable _EVENT_RESTRICT
+_EVENT_RESTRICT = None
+
+# int _EVENT_POLICY
+# -1: no policy (allow all)
+#  0: not configured
+#  1: allow unless in _EVENT_RESTRICT (blacklist)
+#  2: deny  unless in _EVENT_RESTRICT (whitelist)
+#  4: deny all
+_EVENT_POLICY = 0
+
+def setup():
+   global _EVENT_SCRIPT
+   global _EVENT_POLICY
+   global _EVENT_RESTRICT
+
+   _EVENT_SCRIPT = roverlay.config.get ( 'EVENT_HOOK.exe', False )
+   if _EVENT_SCRIPT is False:
+      a_dir = roverlay.config.get ( 'OVERLAY.additions_dir', None )
+      if a_dir:
+         s = os.path.join (
+            a_dir,
+            *roverlay.config.get_or_fail ( 'EVENT_HOOK.default_exe_relpath' )
+         )
+         if os.path.isfile ( s ):
+            _EVENT_SCRIPT = s
+   # -- end if _EVENT_SCRIPT
+
+   conf_restrict = roverlay.config.get ( 'EVENT_HOOK.restrict', False )
+
+   if conf_restrict:
+      # tristate None,False,True
+      is_whitelist = None
+      allow = set()
+      deny  = set()
+      for p in conf_restrict:
+         if p == '*':
+            # "allow all"
+            is_whitelist = False
+         elif p == '-*':
+            # "deny all"
+            is_whitelist = True
+         elif p == '-' or p == '+':
+            # empty
+            pass
+         elif p[0] == '-':
+            # deny <k>
+            k = p[1:].lower()
+            deny.add ( k )
+            try:
+               allow.remove ( k )
+            except KeyError:
+               pass
+         else:
+            # allow <k>
+            k = ( p[1:] if p[0] == '+' else p ).lower()
+            allow.add ( k )
+            try:
+               deny.remove ( k )
+            except KeyError:
+               pass
+      # -- end for;
+
+      if is_whitelist is None:
+         # allow is set                   => is whitelist
+         # neither allow nor deny are set => deny allow
+         is_whitelist = bool ( allow or not deny )
+      # -- end if is_whitelist #1
+
+      if is_whitelist:
+         if allow:
+            _EVENT_RESTRICT = frozenset ( allow )
+            _EVENT_POLICY   = 2
+         else:
+            _EVENT_POLICY = 4
+      elif deny:
+         _EVENT_RESTRICT = frozenset ( deny )
+         _EVENT_POLICY   = 1
+      else:
+         _EVENT_POLICY = -1
+      # -- end if is_whitelist #2
+   else:
+      _EVENT_POLICY = -1
+   # -- end if conf_restrict
+# --- end of setup (...) ---
+
+def phase_allowed ( phase ):
+   if _EVENT_POLICY == -1:
+      return True
+   elif _EVENT_POLICY == 1:
+      # allow unless in restrict
+      if phase not in _EVENT_RESTRICT:
+         return True
+      else:
+         LOGGER.debug (
+            "phase {!r} denied by blacklist policy.".format ( phase )
+         )
+   elif _EVENT_POLICY == 2:
+      # deny unless in restrict
+      if phase in _EVENT_RESTRICT:
+         return True
+      else:
+         LOGGER.debug (
+            "phase {!r} denied by whitelist policy.".format ( phase )
+         )
+   elif _EVENT_POLICY == 4:
+      LOGGER.debug (
+         "phase {!r} denied by 'deny all' policy".format ( phase )
+      )
+   else:
+      LOGGER.warning (
+         "phase {!r} denied by undefined policy {} (fix this)".format (
+            phase, _EVENT_POLICY
+         )
+      )
+   # -- end if _EVENT_POLICY
+
+   # default return
+   return False
+# --- end of phase_allowed (...) ---
+
+def phase_allowed_nolog ( phase ):
+   return (
+      _EVENT_POLICY == -1
+   ) or (
+      _EVENT_POLICY == 1 and phase not in _EVENT_RESTRICT
+   ) or (
+      _EVENT_POLICY == 2 and phase in _EVENT_RESTRICT
+   )
+# --- end of phase_allowed_nolog (...) ---
+
+def run ( phase ):
+   if _EVENT_SCRIPT is None:
+      LOGGER.warning (
+         "hook module not initialized - doing that now (FIXME!)"
+      )
+      setup()
+
+
+
+   if _EVENT_SCRIPT and phase_allowed ( phase ):
+      return roverlay.tools.shenv.run_script (
+         _EVENT_SCRIPT, phase, return_success=True
+      )
+   else:
+      # nop
+      return True
+# --- end of run (...) ---
+
+run_hook = run

diff --git a/roverlay/main.py b/roverlay/main.py
index 901cbcf..4822e21 100644
--- a/roverlay/main.py
+++ b/roverlay/main.py
@@ -289,7 +289,7 @@ def main (
          #  this hook should be called _after_ verifying the overlay
          #  (verification is not implemented yet)
          #
-         if not roverlay.tools.shenv.run_hook ( 'overlay_success' ):
+         if not roverlay.hook.run ( 'overlay_success' ):
             die ( "overlay_success hook returned non-zero", DIE.OV_CREATE )
 
          set_action_done ( "create" )
@@ -476,7 +476,7 @@ def main (
          from roverlay.overlay.creator import OverlayCreator
 
          import roverlay.config
-         import roverlay.tools.shenv
+         import roverlay.hook
       except ImportError:
          if HIDE_EXCEPTIONS:
             die ( "Cannot import roverlay modules!", DIE.IMPORT )
@@ -491,6 +491,9 @@ def main (
 
       # -- run
 
+      # initialize roverlay.hook
+      roverlay.hook.setup()
+
       # always run sync 'cause commands = {create,sync,apply_rules}
       # and create,apply_rules implies (no)sync
       run_sync()

diff --git a/roverlay/tools/shenv.py b/roverlay/tools/shenv.py
index 85644d4..f0c054b 100644
--- a/roverlay/tools/shenv.py
+++ b/roverlay/tools/shenv.py
@@ -1,4 +1,4 @@
-# R overlay -- tools, run roverlay hooks (shell scripts)
+# R overlay -- tools, shell script environment
 # -*- coding: utf-8 -*-
 # Copyright (C) 2013 André Erdmann <dywi@mailerd.de>
 # Distributed under the terms of the GNU General Public License;
@@ -8,6 +8,7 @@ import logging
 import os
 import subprocess
 import tempfile
+import time
 
 
 import roverlay.config
@@ -18,7 +19,6 @@ import roverlay.util
 # _SHELL_ENV, _SHELL_INTPR are created when calling run_script()
 #
 _SHELL_ENV   = None
-_SHELL_ENV_SCRIPT = None
 #_SHELL_INTPR = None
 LOGGER       = logging.getLogger ( 'shenv' )
 
@@ -287,7 +287,11 @@ def run_script ( script, phase, return_success=False, logger=None ):
 
       output = script_call.communicate()
    except:
-      script_call.kill()
+      try:
+         script_call.terminate()
+         time.sleep ( 1 )
+      finally:
+         script_call.kill()
       raise
 
 
@@ -327,15 +331,3 @@ def run_script ( script, phase, return_success=False, logger=None ):
    else:
       return script_call
 # --- end of run_script (...) ---
-
-def run_hook ( phase ):
-   global _SHELL_ENV_SCRIPT
-   if _SHELL_ENV_SCRIPT is None:
-      _SHELL_ENV_SCRIPT = roverlay.config.get ( 'SHELL_ENV.hook', False )
-
-   if _SHELL_ENV_SCRIPT:
-      return run_script ( _SHELL_ENV_SCRIPT, phase, return_success=True )
-   else:
-      # nop
-      return True
-# --- end of run_hook (...) ---


WARNING: multiple messages have this Message-ID (diff)
From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:gsoc13/next commit in: roverlay/tools/, roverlay/config/, roverlay/
Date: Tue, 25 Jun 2013 21:10:35 +0000 (UTC)	[thread overview]
Message-ID: <1372194481.df58d07cbadab7bdd5f6a494355c8dac9f840d09.dywi@gentoo> (raw)
Message-ID: <20130625211035.hAGyNPBNH-MbNbJkk45p1UdlI5fLrMkIXBBMuhfQZX0@z> (raw)

commit:     df58d07cbadab7bdd5f6a494355c8dac9f840d09
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Tue Jun 25 21:08:01 2013 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Tue Jun 25 21:08:01 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=df58d07c

EVENT_HOOK_RESTRICT, roverlay.hook

---
 roverlay/config/const.py    |   4 ++
 roverlay/config/entrymap.py |  29 +++++---
 roverlay/hook.py            | 169 ++++++++++++++++++++++++++++++++++++++++++++
 roverlay/main.py            |   7 +-
 roverlay/tools/shenv.py     |  22 ++----
 5 files changed, 204 insertions(+), 27 deletions(-)

diff --git a/roverlay/config/const.py b/roverlay/config/const.py
index 4ee9d45..f9a2e14 100644
--- a/roverlay/config/const.py
+++ b/roverlay/config/const.py
@@ -78,6 +78,10 @@ _CONSTANTS = dict (
       manifest_implementation = 'default',
    ),
 
+   EVENT_HOOK = dict (
+      default_exe_relpath = [ 'hooks', 'mux.sh' ],
+   ),
+
    TOOLS = dict (
       EBUILD = dict (
          exe    = "/usr/bin/ebuild",

diff --git a/roverlay/config/entrymap.py b/roverlay/config/entrymap.py
index 136b4b5..6a282d9 100644
--- a/roverlay/config/entrymap.py
+++ b/roverlay/config/entrymap.py
@@ -306,6 +306,12 @@ CONFIG_ENTRY_MAP = dict (
       value_type  = yesno,
    ),
 
+   overlay_distmap_file = dict (
+      path        = [ 'OVERLAY', 'DISTMAP', 'dbfile', ]
+      value_type  = 'fs_file',
+      description = 'distmap file',
+   ),
+
    # * alias
    backup_desc               = 'overlay_backup_desc',
    eclass                    = 'overlay_eclass',
@@ -316,6 +322,7 @@ CONFIG_ENTRY_MAP = dict (
    distdir_strategy          = 'overlay_distdir_strategy',
    distdir_flat              = 'overlay_distdir_flat',
    distdir_verify            = 'overlay_distdir_verify',
+   distmap_file              = 'overlay_distmap_file',
 
    # --- overlay
 
@@ -449,14 +456,22 @@ CONFIG_ENTRY_MAP = dict (
       description = 'filter shell env',
    ),
 
-   hook_script = dict (
-      path = [ 'SHELL_ENV', 'hook', ],
-      value_type = 'fs_file',
+   event_hook = dict (
+      path        = [ 'EVENT_HOOK', 'exe', ],
+      value_type  = 'fs_file',
       description = 'script that is run on certain events, e.g. overlay_success',
    ),
 
+   event_hook_restrict = dict (
+      path        = [ 'EVENT_HOOK', 'restrict', ],
+      value_type  = 'list:str',
+      description = 'mask for running hooks',
+   ),
+
+
    # * alias
-   hook = 'hook_script',
+   hook          = 'event_hook',
+   hook_restrict = 'event_hook_restrict',
 
 
    # == other ==
@@ -467,12 +482,6 @@ CONFIG_ENTRY_MAP = dict (
       description = 'directory for cache data',
    ),
 
-   tmpdir = dict (
-      path        = [ 'TMPDIR', 'root', ],
-      value_type  = 'fs_dir',
-      description = 'directory for temporary data',
-   ),
-
    nosync = dict (
       value_type  = yesno,
       description = 'forbid/allow syncing with remotes',

diff --git a/roverlay/hook.py b/roverlay/hook.py
new file mode 100644
index 0000000..3b13315
--- /dev/null
+++ b/roverlay/hook.py
@@ -0,0 +1,169 @@
+# R overlay -- run roverlay hooks (shell scripts)
+# -*- coding: utf-8 -*-
+# Copyright (C) 2013 André Erdmann <dywi@mailerd.de>
+# Distributed under the terms of the GNU General Public License;
+# either version 2 of the License, or (at your option) any later version.
+
+import os.path
+import logging
+
+import roverlay.config
+import roverlay.tools.shenv
+
+__all__ = [ 'run_hook', 'phase_allowed', ]
+
+LOGGER = logging.getLogger ( 'event_hook' )
+
+
+_EVENT_SCRIPT = None
+
+# None|iterable _EVENT_RESTRICT
+_EVENT_RESTRICT = None
+
+# int _EVENT_POLICY
+# -1: no policy (allow all)
+#  0: not configured
+#  1: allow unless in _EVENT_RESTRICT (blacklist)
+#  2: deny  unless in _EVENT_RESTRICT (whitelist)
+#  4: deny all
+_EVENT_POLICY = 0
+
+def setup():
+   global _EVENT_SCRIPT
+   global _EVENT_POLICY
+   global _EVENT_RESTRICT
+
+   _EVENT_SCRIPT = roverlay.config.get ( 'EVENT_HOOK.exe', False )
+   if _EVENT_SCRIPT is False:
+      a_dir = roverlay.config.get ( 'OVERLAY.additions_dir', None )
+      if a_dir:
+         s = os.path.join (
+            a_dir,
+            *roverlay.config.get_or_fail ( 'EVENT_HOOK.default_exe_relpath' )
+         )
+         if os.path.isfile ( s ):
+            _EVENT_SCRIPT = s
+   # -- end if _EVENT_SCRIPT
+
+   conf_restrict = roverlay.config.get ( 'EVENT_HOOK.restrict', False )
+
+   if conf_restrict:
+      # tristate None,False,True
+      is_whitelist = None
+      allow = set()
+      deny  = set()
+      for p in conf_restrict:
+         if p == '*':
+            # "allow all"
+            is_whitelist = False
+         elif p == '-*':
+            # "deny all"
+            is_whitelist = True
+         elif p == '-' or p == '+':
+            # empty
+            pass
+         elif p[0] == '-':
+            # deny <k>
+            k = p[1:].lower()
+            deny.add ( k )
+            try:
+               allow.remove ( k )
+            except KeyError:
+               pass
+         else:
+            # allow <k>
+            k = ( p[1:] if p[0] == '+' else p ).lower()
+            allow.add ( k )
+            try:
+               deny.remove ( k )
+            except KeyError:
+               pass
+      # -- end for;
+
+      if is_whitelist is None:
+         # allow is set                   => is whitelist
+         # neither allow nor deny are set => deny allow
+         is_whitelist = bool ( allow or not deny )
+      # -- end if is_whitelist #1
+
+      if is_whitelist:
+         if allow:
+            _EVENT_RESTRICT = frozenset ( allow )
+            _EVENT_POLICY   = 2
+         else:
+            _EVENT_POLICY = 4
+      elif deny:
+         _EVENT_RESTRICT = frozenset ( deny )
+         _EVENT_POLICY   = 1
+      else:
+         _EVENT_POLICY = -1
+      # -- end if is_whitelist #2
+   else:
+      _EVENT_POLICY = -1
+   # -- end if conf_restrict
+# --- end of setup (...) ---
+
+def phase_allowed ( phase ):
+   if _EVENT_POLICY == -1:
+      return True
+   elif _EVENT_POLICY == 1:
+      # allow unless in restrict
+      if phase not in _EVENT_RESTRICT:
+         return True
+      else:
+         LOGGER.debug (
+            "phase {!r} denied by blacklist policy.".format ( phase )
+         )
+   elif _EVENT_POLICY == 2:
+      # deny unless in restrict
+      if phase in _EVENT_RESTRICT:
+         return True
+      else:
+         LOGGER.debug (
+            "phase {!r} denied by whitelist policy.".format ( phase )
+         )
+   elif _EVENT_POLICY == 4:
+      LOGGER.debug (
+         "phase {!r} denied by 'deny all' policy".format ( phase )
+      )
+   else:
+      LOGGER.warning (
+         "phase {!r} denied by undefined policy {} (fix this)".format (
+            phase, _EVENT_POLICY
+         )
+      )
+   # -- end if _EVENT_POLICY
+
+   # default return
+   return False
+# --- end of phase_allowed (...) ---
+
+def phase_allowed_nolog ( phase ):
+   return (
+      _EVENT_POLICY == -1
+   ) or (
+      _EVENT_POLICY == 1 and phase not in _EVENT_RESTRICT
+   ) or (
+      _EVENT_POLICY == 2 and phase in _EVENT_RESTRICT
+   )
+# --- end of phase_allowed_nolog (...) ---
+
+def run ( phase ):
+   if _EVENT_SCRIPT is None:
+      LOGGER.warning (
+         "hook module not initialized - doing that now (FIXME!)"
+      )
+      setup()
+
+
+
+   if _EVENT_SCRIPT and phase_allowed ( phase ):
+      return roverlay.tools.shenv.run_script (
+         _EVENT_SCRIPT, phase, return_success=True
+      )
+   else:
+      # nop
+      return True
+# --- end of run (...) ---
+
+run_hook = run

diff --git a/roverlay/main.py b/roverlay/main.py
index 901cbcf..4822e21 100644
--- a/roverlay/main.py
+++ b/roverlay/main.py
@@ -289,7 +289,7 @@ def main (
          #  this hook should be called _after_ verifying the overlay
          #  (verification is not implemented yet)
          #
-         if not roverlay.tools.shenv.run_hook ( 'overlay_success' ):
+         if not roverlay.hook.run ( 'overlay_success' ):
             die ( "overlay_success hook returned non-zero", DIE.OV_CREATE )
 
          set_action_done ( "create" )
@@ -476,7 +476,7 @@ def main (
          from roverlay.overlay.creator import OverlayCreator
 
          import roverlay.config
-         import roverlay.tools.shenv
+         import roverlay.hook
       except ImportError:
          if HIDE_EXCEPTIONS:
             die ( "Cannot import roverlay modules!", DIE.IMPORT )
@@ -491,6 +491,9 @@ def main (
 
       # -- run
 
+      # initialize roverlay.hook
+      roverlay.hook.setup()
+
       # always run sync 'cause commands = {create,sync,apply_rules}
       # and create,apply_rules implies (no)sync
       run_sync()

diff --git a/roverlay/tools/shenv.py b/roverlay/tools/shenv.py
index 85644d4..f0c054b 100644
--- a/roverlay/tools/shenv.py
+++ b/roverlay/tools/shenv.py
@@ -1,4 +1,4 @@
-# R overlay -- tools, run roverlay hooks (shell scripts)
+# R overlay -- tools, shell script environment
 # -*- coding: utf-8 -*-
 # Copyright (C) 2013 André Erdmann <dywi@mailerd.de>
 # Distributed under the terms of the GNU General Public License;
@@ -8,6 +8,7 @@ import logging
 import os
 import subprocess
 import tempfile
+import time
 
 
 import roverlay.config
@@ -18,7 +19,6 @@ import roverlay.util
 # _SHELL_ENV, _SHELL_INTPR are created when calling run_script()
 #
 _SHELL_ENV   = None
-_SHELL_ENV_SCRIPT = None
 #_SHELL_INTPR = None
 LOGGER       = logging.getLogger ( 'shenv' )
 
@@ -287,7 +287,11 @@ def run_script ( script, phase, return_success=False, logger=None ):
 
       output = script_call.communicate()
    except:
-      script_call.kill()
+      try:
+         script_call.terminate()
+         time.sleep ( 1 )
+      finally:
+         script_call.kill()
       raise
 
 
@@ -327,15 +331,3 @@ def run_script ( script, phase, return_success=False, logger=None ):
    else:
       return script_call
 # --- end of run_script (...) ---
-
-def run_hook ( phase ):
-   global _SHELL_ENV_SCRIPT
-   if _SHELL_ENV_SCRIPT is None:
-      _SHELL_ENV_SCRIPT = roverlay.config.get ( 'SHELL_ENV.hook', False )
-
-   if _SHELL_ENV_SCRIPT:
-      return run_script ( _SHELL_ENV_SCRIPT, phase, return_success=True )
-   else:
-      # nop
-      return True
-# --- end of run_hook (...) ---


             reply	other threads:[~2013-06-30 15:58 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-30 15:58 André Erdmann [this message]
2013-06-25 21:10 ` [gentoo-commits] proj/R_overlay:gsoc13/next commit in: roverlay/tools/, roverlay/config/, roverlay/ André Erdmann
  -- strict thread matches above, loose matches on Subject: below --
2013-09-06 11:10 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-09-05 10:24 André Erdmann
2013-06-26 17:29 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-06-30 15:58 ` [gentoo-commits] proj/R_overlay:master " André Erdmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1372194481.df58d07cbadab7bdd5f6a494355c8dac9f840d09.dywi@gentoo \
    --to=dywi@mailerd.de \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox