print "Created module:" print path, "\n" for children in l_children: if children not in m_instance.dict_descendant: print "This module ({0}) is not a valid module.".format(children) print "Run `list` for the list of available modules." print "Maybe you need to install some other module first." print "Aborting..." sys.exit(1) print "Needed module:" print l_children, "\n" print "This corresponds to using the following modules:" print l_children + m_instance.l_descendant_unique(l_children), "\n" print "Which is reduced to:" l_child_reduce = m_instance.l_reduce_tree(l_children) print l_child_reduce, "\n" print "Installation", save_new_module(path, l_child_reduce) print " [ OK ]" print "Your module is created in the `plugins` directory." print "You need to create some `.irp.f` to be able to install it." # print "` {0} install {1} `".format(os.path.basename(__file__), name) print "" elif arguments["download"]:
def main(arguments): if arguments["list"]: if arguments["--installed"]: l_repository = [QP_SRC] elif arguments["--available-local"]: l_repository = [QP_PLUGINS] m_instance = ModuleHandler(l_repository) for module in sorted(m_instance.l_module): print "* {0}".format(module) elif arguments["create"]: m_instance = ModuleHandler([QP_SRC]) l_children = arguments["<children_modules>"] name = arguments["<name>"][0] path = os.path.join(QP_PLUGINS, name) print "Created module:" print path, '\n' for children in l_children: if children not in m_instance.dict_descendant: print "This module ({0}) is not a valid module.".format( children) print "Run `list` for the list of available modules." print "Maybe you need to install some other module first." print "Aborting..." sys.exit(1) print "Needed module:" print l_children, '\n' print "This corresponds to using the following modules:" print l_children + m_instance.l_descendant_unique(l_children), '\n' print "Which is reduced to:" l_child_reduce = m_instance.l_reduce_tree(l_children) print l_child_reduce, '\n' print "Installation", save_new_module(path, l_child_reduce) print " [ OK ]" # print "` {0} install {1} `".format(os.path.basename(__file__), name) print "" arguments["create"] = False arguments["install"] = True main(arguments) elif arguments["download"]: print "Not yet implemented" pass # d_local = get_dict_child([QP_SRC]) # d_remote = get_dict_child(arguments["<path_folder>"]) # # d_child = d_local.copy() # d_child.update(d_remote) # # name = arguments["<name>"] # l_module_descendant = get_l_module_descendant(d_child, [name]) # # for module in l_module_descendant: # if module not in d_local: # print "you need to install", module elif arguments["install"]: d_local = get_dict_child([QP_SRC]) d_plugin = get_dict_child([QP_PLUGINS]) d_child = d_local.copy() d_child.update(d_plugin) normalize_case = {} for name in d_local.keys() + d_plugin.keys(): normalize_case[name.lower()] = name l_name = [normalize_case[name.lower()] for name in arguments["<name>"]] for name in l_name: if name in d_local: print "{0} Is already installed".format(name) l_module_descendant = get_l_module_descendant(d_child, l_name) l_module_to_cp = [ module for module in l_module_descendant if module not in d_local ] if l_module_to_cp: print "You will need all these modules" print l_module_to_cp print "Installation...", for module_to_cp in l_module_to_cp: src = os.path.join(QP_PLUGINS, module_to_cp) des = os.path.join(QP_SRC, module_to_cp) try: os.symlink(src, des) except OSError: print "Your src directory is broken. Please remove %s" % des raise try: subprocess.check_call(["qp_create_ninja.py", "update"]) except: raise print "[ OK ]" print "" print "You can now compile as usual" print "`cd {0} ; ninja` for example".format(QP_ROOT) print " or --in developement mode-- you can cd in a directory and compile here" elif arguments["uninstall"]: m_instance = ModuleHandler([QP_SRC]) d_descendant = m_instance.dict_descendant d_local = get_dict_child([QP_SRC]) l_name = arguments["<name>"] l_failed = [name for name in l_name if name not in d_local] if l_failed: print "Modules not installed:" for name in sorted(l_failed): print "* %s" % name sys.exit(1) l_name_to_remove = l_name + [ module for module in m_instance.l_module for name in l_name if name in d_descendant[module] ] print "You will remove all of:" print l_name_to_remove for module in set(l_name_to_remove): try: subprocess.check_call(["module_handler.py", "clean", module]) except: raise for module in set(l_name_to_remove): try: os.unlink(os.path.join(QP_SRC, module)) except OSError: print "%s is a core module which can't be removed" % module
def main(arguments): if arguments["list"]: if arguments["--installed"]: l_repository = [QP_SRC] elif arguments["--available-local"]: l_repository = [QP_PLUGINS] m_instance = ModuleHandler(l_repository) for module in sorted(m_instance.l_module): print "* {0}".format(module) elif arguments["create"]: m_instance = ModuleHandler([QP_SRC]) l_children = arguments["<children_modules>"] name = arguments["<name>"][0] path = os.path.join(QP_PLUGINS, name) print "Created module:" print path, '\n' for children in l_children: if children not in m_instance.dict_descendant: print "This module ({0}) is not a valid module.".format(children) print "Run `list` for the list of available modules." print "Maybe you need to install some other module first." print "Aborting..." sys.exit(1) print "Needed module:" print l_children, '\n' print "This corresponds to using the following modules:" print l_children + m_instance.l_descendant_unique(l_children), '\n' print "Which is reduced to:" l_child_reduce = m_instance.l_reduce_tree(l_children) print l_child_reduce, '\n' print "Installation", save_new_module(path, l_child_reduce) print " [ OK ]" # print "` {0} install {1} `".format(os.path.basename(__file__), name) print "" arguments["create"]=False arguments["install"]=True main(arguments) elif arguments["download"]: print "Not yet implemented" pass # d_local = get_dict_child([QP_SRC]) # d_remote = get_dict_child(arguments["<path_folder>"]) # # d_child = d_local.copy() # d_child.update(d_remote) # # name = arguments["<name>"] # l_module_descendant = get_l_module_descendant(d_child, [name]) # # for module in l_module_descendant: # if module not in d_local: # print "you need to install", module elif arguments["install"]: d_local = get_dict_child([QP_SRC]) d_plugin = get_dict_child([QP_PLUGINS]) d_child = d_local.copy() d_child.update(d_plugin) normalize_case = {} for name in d_local.keys() + d_plugin.keys(): normalize_case [ name.lower() ] = name l_name = [ normalize_case[name.lower()] for name in arguments["<name>"] ] for name in l_name: if name in d_local: print "{0} Is already installed".format(name) l_module_descendant = get_l_module_descendant(d_child, l_name) l_module_to_cp = [module for module in l_module_descendant if module not in d_local] if l_module_to_cp: print "You will need all these modules" print l_module_to_cp print "Installation...", for module_to_cp in l_module_to_cp: src = os.path.join(QP_PLUGINS, module_to_cp) des = os.path.join(QP_SRC, module_to_cp) try: os.symlink(src, des) except OSError: print "Your src directory is broken. Please remove %s" % des raise try: subprocess.check_call(["qp_create_ninja.py", "update"]) except: raise print "[ OK ]" print "" print "You can now compile as usual" print "`cd {0} ; ninja` for exemple".format(QP_ROOT) print " or --in developement mode-- you can cd in a directory and compile here" elif arguments["uninstall"]: m_instance = ModuleHandler([QP_SRC]) d_descendant = m_instance.dict_descendant d_local = get_dict_child([QP_SRC]) l_name = arguments["<name>"] l_failed = [name for name in l_name if name not in d_local] if l_failed: print "Modules not installed:" for name in sorted(l_failed): print "* %s" % name sys.exit(1) l_name_to_remove = l_name + [module for module in m_instance.l_module for name in l_name if name in d_descendant[module]] print "You will remove all of:" print l_name_to_remove for module in set(l_name_to_remove): try: subprocess.check_call(["module_handler.py", "clean", module]) except: raise for module in set(l_name_to_remove): try: os.unlink(os.path.join(QP_SRC, module)) except OSError: print "%s is a core module which can't be removed" % module
print path for children in l_children: if children not in m_instance.dict_descendant: print "This module ({0}) is not a valide module.".format( children) print "Run `list` flag for the list of module available" print "Maybe you need to install some module first" print "Aborting..." sys.exit(1) print "You ask for this submodule:" print l_children print "You can use all the routine in this module" print l_children + m_instance.l_descendant_unique(l_children) print "This can be reduce to:" l_child_reduce = m_instance.l_reduce_tree(l_children) print l_child_reduce print "Installation", save_new_module(path, l_child_reduce) print " [ OK ]" print "You can now install it normaly. Type:" print "` {0} install {1} `".format(os.path.basename(__file__), name) print "And don't forgot to add this to the git if you want" elif arguments["download"]: pass # d_local = get_dict_child([QP_SRC])