code: def post_exec_hook(hook):
      
      #post_setupnode hook
      module_name = '.'.join([env.project_package_name,'deploy'])
      funcs_run = []
      try:
          imported = import_module(module_name)
          func = vars(imported).get(hook)
          if func:
              func()
              funcs_run.append(func)
      except ImportError:
          return
  
     #run per app
      for app in env.INSTALLED_APPS:
          if app == 'woven': continue
          module_name = '.'.join([app,'deploy'])
          try:
              imported = import_module(module_name)
              func = vars(imported).get(hook)
              if func and func not in funcs_run:
                  func()
                  funcs_run.append(func)
          except ImportError:
              pass
      import woven.deploy
      func = vars(woven.deploy).get(hook)
      if func and func not in funcs_run: func()
docs: Runs a hook function defined in a deploy.py file