def __init__(self, args): parser = argparse.ArgumentParser() parser.add_argument("-d", "--db_name", help = "database name") # [...] d'autres arguments # accessible via options.code_argument options = parser.parse_args(args) self.db_name = options.db_name self.pkg_path_1 = glob.cog_pkg_path(self.db_name) self.mod_path = self.pkg_path_1.replace("/", ".") in_cog_repo_db_name = glob._config('db', 'name') if in_cog_repo_db_name: sys.stderr.write( """you are in the '%s' collorg repository\n""" """you can't create a new repository in it\n""" """aborting\n""" % ( in_cog_repo_db_name)) sys.exit(1) if os.path.exists("%s" % (self.db_name)): sys.stderr.write( "directory or file %s already in the way\n" "try cog make in that directory instead\n" "aborting\n" % (self.db_name)) sys.exit(1) db_exists = os.popen( """psql --list | egrep '^ %s '""" % ( self.db_name)).read().strip() if not db_exists: self.__create_db() self.__initdb() self.db = Controller(self.db_name).db self.charset = self.db._cog_controller._charset self.__make_cog_tree() self.db.table('collorg.core.data_type')._populate()
def __init__(self, controller, *args): self.__ctrl = controller if self.__ctrl is None: self.__ctrl = Controller() self.db_ = self.__ctrl.db self.__db_name = self.db_.name self.__collorg_db = None if self.__db_name != "collorg_db": self.__collorg_db_ctrl = Controller("collorg_db") self.__collorg_db = self.__collorg_db_ctrl.db self.pkg_path = glob.cog_pkg_path(self.db_.name) self.mod_path = self.pkg_path.replace("/", ".") self.__repos_base_dir = self.__ctrl.repos_path sys.path.insert(0, self.__repos_base_dir) sys.path.insert(0, ".") self.__rerun = 0 self.__parse_args() # XXX recopie brute de collorg.utils.make.py # REMOVE ME WHEN DONE self.template_module = None self.l_schemas = [self.mod_path] self.db_ = Controller(self.db_.name).db self.db_.table("collorg.core.data_type")._populate() self.charset = self.db_._cog_controller._charset System_users(self.__ctrl).check() self.make_cog_tree() cog_table = self.db_.table("collorg.core.data_type") for fqtn in self.db_.fqtns: cog_table = self.db_.table("collorg.core.data_type") cog_table.fqtn_.value = fqtn tablename = fqtn.rsplit(".", 1)[1] cog_table.name_.value = tablename if not cog_table.count(): cog_table.insert() self.__gen_templates() GenRelationalPart(self.__ctrl) os.system( "cd {};make clean_install > /dev/null" ";sudo python setup.py -q install".format(self.__repos_base_dir) ) # os.system("sudo service apache2 restart") if self.__rerun and self.__rerun < 2: os.system("cog make") # print("Please rerun cog make to finish install.") if self.db_.name != "collorg_db": self.__sync_collorg_actions() Action_requirement(self.__ctrl).update_check() os.system("sudo service apache2 restart")
def __make_cog_repos(self): db_name = self.db.name base_dir = "%s/%s" % (self.__curdir, db_name) if not os.path.exists(base_dir): os.mkdir(base_dir) open("%s/__init__.py" % (base_dir), "w") if not os.path.exists("%s/.cog" % (base_dir)): os.mkdir("%s/.cog" % (base_dir)) open("%s/.cog/config" % (base_dir), "w").write( cog_config_file % (db_name)) os.chdir(base_dir) self.abs_base_dir = os.path.abspath(os.path.curdir) sys.path.insert(0, self.abs_base_dir) cog_app_pkg_dir = "%s" % (glob.cog_pkg_path(self.db_name)) if not os.path.exists(cog_app_pkg_dir): os.makedirs(cog_app_pkg_dir) for dir_ in ("../..", "..", "."): open("%s/%s/__init__.py" % (cog_app_pkg_dir, dir_), "w") open("%s/__init__.py" % (cog_app_pkg_dir), "w") os.chdir(cog_app_pkg_dir) self.post_init()
def __init__(self, controller, *args): self.__ctrl = controller if self.__ctrl is None: self.__ctrl = Controller() self.db = self.__ctrl.db self.__database = self.db.table('collorg.core.database') self.__db_name = self.db.name self.__database.name_.value = self.__db_name assert self.__database.count() == 1 self.__patch = None self.__patch_dir = None self.__major = None self.__minor = None self.__revision = None self.__cfg_file = None self.__output = [] self.__error = [] self.pkg_path = glob.cog_pkg_path(self.db.name) self.mod_path = self.pkg_path.replace("/", ".") self.__repos_base_dir = self.__ctrl.repos_path self.__parse_args() self.__execute()