/ Published in: Python
URL: http://www.alejandrob.com.ar/
Expand |
Embed | Plain Text
#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright (c) 2011 The Octopus Apps Inc. # Licensed under the Apache License, Version 2.0 (the "License") # # Author: Alejandro M. Bernardis # Email: alejandro.m.bernardis at gmail.com # Created: Apr 5, 2011 12:27:14 AM # import os import re import sys from servertools import get_version from servertools.common import DB, REPO, USER, services_list # Variables # ------------------------------------------------------------------------------ path_root = os.path.abspath(os.path.dirname(os.path.realpath(__file__))) path_lib = os.path.join(path_root, 'lib') path_package = os.path.join(path_root, 'servertools') path_extras = [path_root, path_lib] # Methods # ------------------------------------------------------------------------------ usage_string = """Usage: option: %prog [-h|-s|-v] [--help|--services|--version] or: %prog <service> ... args or: %prog <service> [-h|--help]""" version_string = """The Octopus Apps - - Server Tools version %s""" error_string = """Error: The action "%s" does not available """ def usage(): print usage_string.replace('%prog', os.path.basename(__file__)) sys.exit(1) def usage_version(): print version_string % get_version() sys.exit(1) def usage_service(): print """Services: Database: - dbcreate create a new database - dbremove permanently remove a database - dbadd associated with a user repository - dbdel a database detaches a repository - dblist displays a list of all databases Repository: - repocreate create a new repository - reporemove permanently remove a repository - repoadd enabled to access the repository - repodel disable access to the repository - repolist displays a list of all repositories User: - usercreate create a new user - userremove permanently remove a user - useradd associated with a user repository - userdel a user detaches a repository - userlist displays a list of all users """ # Methods # ------------------------------------------------------------------------------ def fix_sys_paths(paths=[]): """Fixed system paths""" sys.path = paths + sys.path def run(fname, gargs): """Execute program.""" fix_sys_paths(path_extras) execfile(fname, gargs) def validate(args, pdir=path_package): """Validate the action to run.""" largs = len(args) if largs == 2: argument = args[1].lower() if argument in ['-v', '--version']: usage_version() elif argument in ['-s', '--services']: usage_service() elif largs >= 2: action = args[1].lower() pattern = r'^(%s|%s|%s)' % (DB, REPO, USER) if action in services_list: fname = os.path.join(pdir, os.path.basename( '%s.py' % re.search(pattern, action).group())) if os.path.exists(fname): run(fname, globals()) return if action not in ['-h', '--help']: print error_string % action usage() # Main # ------------------------------------------------------------------------------ if __name__ == '__main__': validate(sys.argv)
You need to login to post a comment.
