1#!/usr/bin/env python3 2# coding: utf-8 3# Copyright (c) 2024 Huawei Device Co., Ltd. 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15import sys 16import subprocess 17import os 18 19 20def run_command(command): 21 result = subprocess.run(command, shell=False, capture_output=True) 22 return result.stdout, result.stderr, result.returncode 23 24 25def main(): 26 if len(sys.argv) != 4: 27 print("Usage: python generate_hpb.py <hpb_transform_exe> <tex_file_path> <output_hpb_file>") 28 sys.exit(1) 29 30 hpb_transform_exe = sys.argv[1] 31 tex_file_path = sys.argv[2] 32 output_hpb_file = sys.argv[3] 33 34 # 检查并创建输出文件夹 35 output_dir = os.path.dirname(output_hpb_file) 36 if not os.path.exists(output_dir): 37 os.makedirs(output_dir) 38 print(f"Created directory: {output_dir}") 39 40 # 创建命令 41 command_str = f"{hpb_transform_exe} {tex_file_path} {output_hpb_file}" 42 command = [hpb_transform_exe, tex_file_path, output_hpb_file] 43 print(f"hpy_command: {command_str}") 44 45 # 执行命令 46 stdout, stderr, returncode = run_command(command) 47 if returncode == 0: 48 print("Command executed successfully.") 49 else: 50 print(f"Command failed with return code {returncode}") 51 print(f"Error output: {stderr.decode('utf-8')}") 52 53 54if __name__ == "__main__": 55 main() 56