1e509ee18Sopenharmony_ci#!/usr/bin/env python3 2e509ee18Sopenharmony_ci# -*- coding: utf-8 -*- 3e509ee18Sopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd. 4e509ee18Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 5e509ee18Sopenharmony_ci# you may not use this file except in compliance with the License. 6e509ee18Sopenharmony_ci# You may obtain a copy of the License at 7e509ee18Sopenharmony_ci# 8e509ee18Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 9e509ee18Sopenharmony_ci# 10e509ee18Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 11e509ee18Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 12e509ee18Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e509ee18Sopenharmony_ci# See the License for the specific language governing permissions and 14e509ee18Sopenharmony_ci# limitations under the License. 15e509ee18Sopenharmony_ci 16e509ee18Sopenharmony_ciimport os 17e509ee18Sopenharmony_ciimport sys 18e509ee18Sopenharmony_ciimport subprocess 19e509ee18Sopenharmony_ci 20e509ee18Sopenharmony_ci 21e509ee18Sopenharmony_cidef run_cmd(cmd): 22e509ee18Sopenharmony_ci res = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, 23e509ee18Sopenharmony_ci stderr=subprocess.PIPE) 24e509ee18Sopenharmony_ci sout, serr = res.communicate() 25e509ee18Sopenharmony_ci 26e509ee18Sopenharmony_ci return res.pid, res.returncode, sout, serr 27e509ee18Sopenharmony_ci 28e509ee18Sopenharmony_ci 29e509ee18Sopenharmony_cidef check_darwin_system(): 30e509ee18Sopenharmony_ci check_system_cmd = "uname -s" 31e509ee18Sopenharmony_ci res = run_cmd(check_system_cmd) 32e509ee18Sopenharmony_ci if res[1] == 0 and res[2] != "": 33e509ee18Sopenharmony_ci if "Darwin" in res[2].strip().decode(): 34e509ee18Sopenharmony_ci print("system is darwin") 35e509ee18Sopenharmony_ci 36e509ee18Sopenharmony_ci return 0 37e509ee18Sopenharmony_ci 38e509ee18Sopenharmony_ci 39e509ee18Sopenharmony_cidef check_m1_cpu(): 40e509ee18Sopenharmony_ci check_host_cpu_cmd = "sysctl machdep.cpu.brand_string" 41e509ee18Sopenharmony_ci res = run_cmd(check_host_cpu_cmd) 42e509ee18Sopenharmony_ci if res[1] == 0 and res[2] != "": 43e509ee18Sopenharmony_ci host_cpu = res[2].strip().decode().split("brand_string:")[-1] 44e509ee18Sopenharmony_ci if "M1" in host_cpu: 45e509ee18Sopenharmony_ci print("host cpu is m1") 46e509ee18Sopenharmony_ci elif "M2" in host_cpu: 47e509ee18Sopenharmony_ci print("host cpu is m2") 48e509ee18Sopenharmony_ci elif "M3" in host_cpu: 49e509ee18Sopenharmony_ci print("host_cpu is m3") 50e509ee18Sopenharmony_ci 51e509ee18Sopenharmony_ci return 0 52e509ee18Sopenharmony_ci 53e509ee18Sopenharmony_ci 54e509ee18Sopenharmony_cidef main(): 55e509ee18Sopenharmony_ci if sys.argv[1] == "cpu": 56e509ee18Sopenharmony_ci check_m1_cpu() 57e509ee18Sopenharmony_ci elif sys.argv[1] == "system": 58e509ee18Sopenharmony_ci check_darwin_system() 59e509ee18Sopenharmony_ci else: 60e509ee18Sopenharmony_ci return 0 61e509ee18Sopenharmony_ci 62e509ee18Sopenharmony_ciif __name__ == '__main__': 63e509ee18Sopenharmony_ci sys.exit(main()) 64