import sys
import subprocess
import argparse
from pathlib import Path
class Builder:
def __init__(self):
self._parse_args()
def _parse_args(self):
parser = argparse.ArgumentParser(description="affinity-sched 构建工具")
parser.add_argument("--version", "-v", required=True, help="版本号(必填)")
parser.add_argument("--output", "-o", help="统一输出目录(默认:./dist)")
self.args = parser.parse_args()
def build(self):
PROJECT_ROOT = Path(__file__).parent.absolute()
SCRIPTS_DIR = PROJECT_ROOT / "scripts"
BUILD_WHL = SCRIPTS_DIR / "build_whl.py"
for script in [BUILD_WHL]:
if not BUILD_WHL.exists():
print(f"找不到脚本:{script}")
sys.exit(1)
output_args = ["--output", self.args.output] if self.args.output else []
print("\n========================================")
print(" 开始构建 affinity-sched whl 包" )
print("========================================")
subprocess.run(
[sys.executable, str(BUILD_WHL),
"--version", self.args.version] + output_args,
cwd=PROJECT_ROOT,
check=True
)
print("\n全部构建完成!")
if __name__ == "__main__":
try:
Builder().build()
except Exception as e:
print(f"Build affinity-sched fail, {str(e)}")