def init(root_path, publish_path = None, force = False): u''' 初始化一个新的库 初始化一个新的库,建立template-config.xml配置文件及常用的目录,如果指定了 -p 参数,还可以自动建立与发布目录的连接''' # 确保不要init了一个工作区 if Workspace.get_workspace(root_path) == root_path: ui.error(u'工作区不能被初始化') return 1 # 确保不要init了一个publish库 if StaticPackage.get_publish(root_path): ui.error(u'发布目录不能被初始化') return 1 ui.msg(u'初始化%s' % root_path) try: StaticPackage.init(root_path) ui.msg(u'创建配置文件') except PackageExistsException: ui.error(u'已经存在') return 1 pathnames = ['test', 'doc', 'src', 'lib', 'res'] for name in pathnames: path = os.path.join(root_path, name) if not os.path.exists(path): os.makedirs(path) ui.msg(u'生成默认目录 %s' % name) workspace_path = Workspace.get_workspace(root_path) if not workspace_path: ui.msg(u'没有工作区,请参照 opm help load') else: workspace = Workspace(workspace_path) if not workspace.has_package(root_path): workspace.add_package(root_path) ui.msg(u'加入本地工作区') else: ui.msg(u'本地工作区中已存在') ui.msg(u'成功!') if publish_path: link(root_path, publish_path, force = force)