85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
create_src.py - 在services目录下创建服务文件夹和文件结构
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
def create_service_structure(table_name):
|
|
"""创建服务文件夹结构"""
|
|
|
|
# 获取项目根目录
|
|
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
services_dir = os.path.join(project_root, 'services')
|
|
|
|
# 创建服务目录
|
|
service_dir = os.path.join(services_dir, table_name)
|
|
|
|
print(f"🚀 开始创建服务结构: {table_name}")
|
|
print(f"📁 目标目录: {service_dir}")
|
|
|
|
try:
|
|
# 创建主目录
|
|
os.makedirs(service_dir, exist_ok=True)
|
|
print(f"✅ 创建主目录: {service_dir}")
|
|
|
|
# 创建子目录
|
|
subdirs = ['src', 'src/crud', 'src/infra', 'src/model']
|
|
for subdir in subdirs:
|
|
dir_path = os.path.join(service_dir, subdir)
|
|
os.makedirs(dir_path, exist_ok=True)
|
|
print(f"✅ 创建子目录: {dir_path}")
|
|
|
|
# 定义要创建的文件列表
|
|
files_to_create = [
|
|
'dev.sh',
|
|
'README.md',
|
|
'src/Dockerfile',
|
|
'src/go.mod',
|
|
'src/go.sum',
|
|
'src/main.go',
|
|
'src/crud/create.go',
|
|
'src/crud/read.go',
|
|
'src/crud/update.go',
|
|
'src/crud/delete.go',
|
|
'src/infra/launch.go',
|
|
'src/infra/logger.go',
|
|
'src/infra/postgres.go',
|
|
'src/model/payload.go'
|
|
]
|
|
|
|
# 创建所有文件
|
|
for file_path in files_to_create:
|
|
full_path = os.path.join(service_dir, file_path)
|
|
os.makedirs(os.path.dirname(full_path), exist_ok=True) # 确保目录存在
|
|
|
|
# 创建空文件
|
|
with open(full_path, 'w', encoding='utf-8') as f:
|
|
f.write('') # 创建空文件
|
|
|
|
print(f"✅ 创建文件: {full_path}")
|
|
|
|
print(f"🎉 服务结构创建完成: {table_name}")
|
|
return True
|
|
|
|
except Exception as e:
|
|
print(f"❌ 创建服务结构时出错: {e}")
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
# 从环境变量获取表名
|
|
table_name = os.environ.get('TABLE_NAME')
|
|
|
|
if not table_name:
|
|
print("❌ 错误: 未设置 TABLE_NAME 环境变量")
|
|
sys.exit(1)
|
|
|
|
print(f"📋 接收到的表名: {table_name}")
|
|
success = create_service_structure(table_name)
|
|
|
|
if success:
|
|
sys.exit(0)
|
|
else:
|
|
sys.exit(1) |