def handle(self, **options): app_code, target = options.pop('name'), options.pop('directory') self.validate_name(app_code, 'project') # Check that the project_name cannot be imported. try: import_module(app_code) except ImportError: pass else: raise CommandError('%r conflicts with the name of an existing ' 'Python module and cannot be used as a ' 'project name. Please try another name.' % app_code) run_ver = blueapps.get_run_ver() or options.get('run_ver') # Create a random SECRET_KEY to put it in the main settings. if not options.get('secret_key'): secret_key = input('secret_key: ').strip() if not run_ver: run_ver = self.confirm_run_ver() if not secret_key or len(secret_key) != \ platform_secret_key_length_map[run_ver]: raise CommandError("secret_key is necessary and " "it's length is %s" % platform_secret_key_length_map[run_ver]) options['secret_key'] = secret_key options['run_ver'] = run_ver options['app_code'] = app_code options['blueapps_version'] = blueapps.__version__ options[ 'esb_sdk_minimum_version'] = platform_esb_minimum_version_map.get( run_ver) project_name = 'trunk' super(Command, self).handle('project', project_name, target, **options) # 根据版本确定requirements.txt if target is None: top_dir = path.join(os.getcwd(), project_name) else: top_dir = os.path.abspath(path.expanduser(target)) # open版本的requirements-open.txt路径 open_requirements_file = os.path.join(top_dir, 'requirements-open.txt') # v3版本的requirements-v3.txt路径 v3_requirements_file = os.path.join(top_dir, 'requirements-v3.txt') # 最终的requirements.txt路径 requirements_file = os.path.join(top_dir, 'requirements.txt') # open版本包定制 if run_ver == 'open': # 保留requirements - open.txt, 并重命名为requirements.txt os.remove(v3_requirements_file) os.rename(open_requirements_file, requirements_file) # v3(ieod,qcloud,clouds,tencent)版本包定制 else: # 保留requirements-v3.txt,并重命名为requirements.txt os.remove(open_requirements_file) os.rename(v3_requirements_file, requirements_file)
def handle(self, **options): app_code, target = options.pop("name"), options.pop("directory") # self.validate_name(app_code, 'project') app_code并不是项目名称,当app_code为test-test-test这种形式会引起报错,所以不需要检查app_code # Check that the project_name cannot be imported. try: import_module(app_code) except ImportError: pass else: raise CommandError("%r conflicts with the name of an existing " "Python module and cannot be used as a " "project name. Please try another name." % app_code) run_ver = blueapps.get_run_ver() or options.get("run_ver") # Create a random SECRET_KEY to put it in the main settings. if not options.get("secret_key"): secret_key = input("secret_key: ").strip() if not run_ver: run_ver = self.confirm_run_ver() if (not secret_key or len(secret_key) != platform_secret_key_length_map[run_ver]): raise CommandError("secret_key is necessary and " "it's length is %s" % platform_secret_key_length_map[run_ver]) options["secret_key"] = secret_key options["run_ver"] = run_ver options["app_code"] = app_code options["blueapps_version"] = blueapps.__version__ options[ "esb_sdk_minimum_version"] = platform_esb_minimum_version_map.get( run_ver) project_name = "trunk" super(Command, self).handle("project", project_name, target, **options) # 根据版本确定requirements.txt if target is None: top_dir = path.join(os.getcwd(), project_name) else: top_dir = os.path.abspath(path.expanduser(target)) # open版本的requirements-open.txt路径 open_requirements_file = os.path.join(top_dir, "requirements-open.txt") # v3版本的requirements-v3.txt路径 v3_requirements_file = os.path.join(top_dir, "requirements-v3.txt") # 公共requirements-common.txt路径 common_requirements_file = os.path.join(top_dir, "requirements-common.txt") # paas增强requirements-services.txt路径 services_requirements_file = os.path.join(top_dir, "requirements_services.txt") # 最终的requirements.txt路径 requirements_file = os.path.join(top_dir, "requirements.txt") # open版本包定制 if run_ver == "open": # 保留requirements - open.txt, 并重命名为requirements.txt self.append_requirement_file(common_requirements_file, open_requirements_file) os.remove(open_requirements_file) os.remove(v3_requirements_file) os.remove(services_requirements_file) os.rename(common_requirements_file, requirements_file) # v3(ieod,qcloud,clouds,tencent)版本包定制 else: self.append_requirement_file(common_requirements_file, v3_requirements_file) # 保留requirements-v3.txt,并重命名为requirements.txt os.remove(open_requirements_file) os.remove(v3_requirements_file) os.rename(common_requirements_file, requirements_file)