12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # -*- coding: utf-8 -*-
- """
- Created on 2018-08-28 17:38:43
- ---------
- @summary: 创建项目
- ---------
- @author: Boris
- @email: boris_liu@foxmail.com
- """
- import getpass
- import os
- import shutil
- import feapder.utils.tools as tools
- def deal_file_info(file):
- file = file.replace("{DATE}", tools.get_current_date())
- file = file.replace("{USER}", getpass.getuser())
- return file
- class CreateProject:
- def copy_callback(self, src, dst, *, follow_symlinks=True):
- if src.endswith(".py"):
- with open(src, "r", encoding="utf-8") as src_file, open(
- dst, "w", encoding="utf8"
- ) as dst_file:
- content = src_file.read()
- content = deal_file_info(content)
- dst_file.write(content)
- else:
- shutil.copy2(src, dst, follow_symlinks=follow_symlinks)
- def create(self, project_name):
- if os.path.exists(project_name):
- print("%s 项目已经存在" % project_name)
- else:
- template_path = os.path.abspath(
- os.path.join(__file__, "../../../templates/project_template")
- )
- shutil.copytree(
- template_path, project_name, copy_function=self.copy_callback
- )
- print("\n%s 项目生成成功" % project_name)
|