Exemplo n.º 1
0
 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()
Exemplo n.º 2
0
 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")
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
 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()