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