diff options
author | André Erdmann <dywi@mailerd.de> | 2013-07-16 00:29:05 +0200 |
---|---|---|
committer | André Erdmann <dywi@mailerd.de> | 2013-07-16 00:29:05 +0200 |
commit | 6e32f77915e8bf388059f79750a5a30bf8d2fb49 (patch) | |
tree | 8888b01b1618dd75fd63ecbad17417e91548150f | |
parent | roverlay/config/defconfig: set EVENT_HOOK_RESTRICT (diff) | |
download | R_overlay-6e32f77915e8bf388059f79750a5a30bf8d2fb49.tar.gz R_overlay-6e32f77915e8bf388059f79750a5a30bf8d2fb49.tar.bz2 R_overlay-6e32f77915e8bf388059f79750a5a30bf8d2fb49.zip |
--run-script: respect EvENT_HOOK_RESTRICT
-rw-r--r-- | roverlay/hook.py | 4 | ||||
-rw-r--r-- | roverlay/main.py | 25 |
2 files changed, 17 insertions, 12 deletions
diff --git a/roverlay/hook.py b/roverlay/hook.py index e56aa33..262d3c2 100644 --- a/roverlay/hook.py +++ b/roverlay/hook.py @@ -32,12 +32,12 @@ _EVENT_POLICY = 0 class HookException ( Exception ): pass -def setup(): +def setup ( force=False ): global _EVENT_SCRIPT global _EVENT_POLICY global _EVENT_RESTRICT - if roverlay.config.get ( 'write_disabled', False ): + if roverlay.config.get ( 'write_disabled', False ) and not force: _EVENT_SCRIPT = False return diff --git a/roverlay/main.py b/roverlay/main.py index 24c02c6..7a88171 100644 --- a/roverlay/main.py +++ b/roverlay/main.py @@ -497,16 +497,21 @@ def main ( if do_runscript: import roverlay.tools.shenv - sys.exit ( - roverlay.tools.shenv.run_script ( - script = extra_opts ['run_script'], - phase = "user", - argv = extra_opts ['run_script_args'], - return_success = False, - log_output = False, - initial_dir = os.getcwd(), - ).returncode - ) + import roverlay.hook + roverlay.hook.setup ( force=True ) + if roverlay.hook.phase_allowed ( "user" ): + sys.exit ( + roverlay.tools.shenv.run_script ( + script = extra_opts ['run_script'], + phase = "user", + argv = extra_opts ['run_script_args'], + return_success = False, + log_output = False, + initial_dir = os.getcwd(), + ).returncode + ) + else: + die ( "--run-script: 'user' phase is not allowed." ) elif do_setupdirs: sys.exit ( run_setupdirs ( conf, extra_opts['target_uid'], extra_opts['target_gid'] |