PageRenderTime 22ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/silverlining/mgr-scripts/call-script.py

https://bitbucket.org/ianb/silverlining/
Python | 27 lines | 23 code | 3 blank | 1 comment | 5 complexity | 05b282ed8cc07f74d9eb08dbe3d2eb7a MD5 | raw file
Possible License(s): GPL-2.0
  1. import sys
  2. import os
  3. if os.path.exists(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'runner.py')):
  4. # In development
  5. sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
  6. else:
  7. sys.path.insert(0, '/usr/local/share/silverlining/lib')
  8. from silversupport.appconfig import AppConfig
  9. def main():
  10. instance_name = sys.argv[1]
  11. script = sys.argv[2]
  12. if instance_name.startswith('/'):
  13. app_ini = os.path.join(instance_name, 'app.ini')
  14. app_config = AppConfig(app_ini)
  15. else:
  16. app_config = AppConfig.from_instance_name(instance_name)
  17. app_config.activate_services(os.environ)
  18. app_config.activate_path()
  19. script = os.path.join(app_config.app_dir, script)
  20. ns = {'__file__': script, '__name__': '__main__'}
  21. sys.argv = [script] + sys.argv[3:]
  22. execfile(script, ns)
  23. if __name__ == '__main__':
  24. main()