openubmc-bingo 0.5.240__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of openubmc-bingo might be problematic. Click here for more details.
- bmcgo/__init__.py +12 -0
- bmcgo/bmcgo.py +22 -0
- bmcgo/bmcgo_config.py +176 -0
- bmcgo/cli/__init__.py +10 -0
- bmcgo/cli/cli.py +584 -0
- bmcgo/codegen/__init__.py +14 -0
- bmcgo/codegen/c/__init__.py +9 -0
- bmcgo/codegen/c/annotation.py +52 -0
- bmcgo/codegen/c/argument.py +42 -0
- bmcgo/codegen/c/codegen.py +153 -0
- bmcgo/codegen/c/comment.py +22 -0
- bmcgo/codegen/c/ctype_defination.py +353 -0
- bmcgo/codegen/c/helper.py +87 -0
- bmcgo/codegen/c/interface.py +63 -0
- bmcgo/codegen/c/method.py +82 -0
- bmcgo/codegen/c/property.py +180 -0
- bmcgo/codegen/c/renderer.py +21 -0
- bmcgo/codegen/c/signal.py +64 -0
- bmcgo/codegen/c/template/client.c.mako +145 -0
- bmcgo/codegen/c/template/client.h.mako +36 -0
- bmcgo/codegen/c/template/interface.c.mako +0 -0
- bmcgo/codegen/c/template/interface.introspect.xml.mako +99 -0
- bmcgo/codegen/c/template/micro_component.c.mako +32 -0
- bmcgo/codegen/c/template/public.c.mako +228 -0
- bmcgo/codegen/c/template/public.h.mako +128 -0
- bmcgo/codegen/c/template/server.c.mako +104 -0
- bmcgo/codegen/c/template/server.h.mako +36 -0
- bmcgo/codegen/lua/.lua-format +7 -0
- bmcgo/codegen/lua/Makefile +101 -0
- bmcgo/codegen/lua/__init__.py +9 -0
- bmcgo/codegen/lua/codegen.py +171 -0
- bmcgo/codegen/lua/proto/Makefile +87 -0
- bmcgo/codegen/lua/proto/ipmi_types.proto +17 -0
- bmcgo/codegen/lua/proto/types.proto +52 -0
- bmcgo/codegen/lua/script/check_intfs.py +161 -0
- bmcgo/codegen/lua/script/dto/__init__.py +11 -0
- bmcgo/codegen/lua/script/dto/exception.py +53 -0
- bmcgo/codegen/lua/script/dto/kepler_abstract.py +47 -0
- bmcgo/codegen/lua/script/dto/options.py +33 -0
- bmcgo/codegen/lua/script/dto/print_simple.py +19 -0
- bmcgo/codegen/lua/script/dto/redfish_api.py +241 -0
- bmcgo/codegen/lua/script/dto/url_route.py +195 -0
- bmcgo/codegen/lua/script/gen_db_json.py +444 -0
- bmcgo/codegen/lua/script/gen_depends.py +89 -0
- bmcgo/codegen/lua/script/gen_entry.py +263 -0
- bmcgo/codegen/lua/script/gen_feature_json.py +156 -0
- bmcgo/codegen/lua/script/gen_historical_local_db_json.py +88 -0
- bmcgo/codegen/lua/script/gen_intf_json.py +261 -0
- bmcgo/codegen/lua/script/gen_intf_rpc_json.py +575 -0
- bmcgo/codegen/lua/script/gen_ipmi_json.py +485 -0
- bmcgo/codegen/lua/script/gen_mdb_json.py +117 -0
- bmcgo/codegen/lua/script/gen_rpc_msg_json.py +487 -0
- bmcgo/codegen/lua/script/gen_schema.py +302 -0
- bmcgo/codegen/lua/script/ipmi_types_pb2.py +135 -0
- bmcgo/codegen/lua/script/loader/__init__.py +11 -0
- bmcgo/codegen/lua/script/loader/file_utils.py +33 -0
- bmcgo/codegen/lua/script/loader/kepler_abstract_collect.py +79 -0
- bmcgo/codegen/lua/script/loader/kepler_abstract_loader.py +47 -0
- bmcgo/codegen/lua/script/loader/redfish_loader.py +127 -0
- bmcgo/codegen/lua/script/lua_format.py +62 -0
- bmcgo/codegen/lua/script/mds_util.py +385 -0
- bmcgo/codegen/lua/script/merge_model.py +330 -0
- bmcgo/codegen/lua/script/merge_proto_algo.py +85 -0
- bmcgo/codegen/lua/script/proto_loader.py +47 -0
- bmcgo/codegen/lua/script/proto_plugin.py +140 -0
- bmcgo/codegen/lua/script/redfish_source_tree.py +118 -0
- bmcgo/codegen/lua/script/render_utils/__init__.py +38 -0
- bmcgo/codegen/lua/script/render_utils/base.py +25 -0
- bmcgo/codegen/lua/script/render_utils/client_lua.py +98 -0
- bmcgo/codegen/lua/script/render_utils/controller_lua.py +71 -0
- bmcgo/codegen/lua/script/render_utils/db_lua.py +224 -0
- bmcgo/codegen/lua/script/render_utils/error_lua.py +185 -0
- bmcgo/codegen/lua/script/render_utils/factory.py +52 -0
- bmcgo/codegen/lua/script/render_utils/ipmi_lua.py +159 -0
- bmcgo/codegen/lua/script/render_utils/ipmi_message_lua.py +24 -0
- bmcgo/codegen/lua/script/render_utils/mdb_lua.py +177 -0
- bmcgo/codegen/lua/script/render_utils/mdb_register.py +215 -0
- bmcgo/codegen/lua/script/render_utils/message_lua.py +26 -0
- bmcgo/codegen/lua/script/render_utils/messages_lua.py +156 -0
- bmcgo/codegen/lua/script/render_utils/model_lua.py +485 -0
- bmcgo/codegen/lua/script/render_utils/old_model_lua.py +429 -0
- bmcgo/codegen/lua/script/render_utils/plugin_lua.py +38 -0
- bmcgo/codegen/lua/script/render_utils/redfish_proto.py +86 -0
- bmcgo/codegen/lua/script/render_utils/request_lua.py +76 -0
- bmcgo/codegen/lua/script/render_utils/service_lua.py +130 -0
- bmcgo/codegen/lua/script/render_utils/utils_message_lua.py +125 -0
- bmcgo/codegen/lua/script/render_utils/validate_lua.py +221 -0
- bmcgo/codegen/lua/script/sep_ipmi_message_cmds.py +217 -0
- bmcgo/codegen/lua/script/template.py +166 -0
- bmcgo/codegen/lua/script/types_pb2.py +516 -0
- bmcgo/codegen/lua/script/utils.py +663 -0
- bmcgo/codegen/lua/script/validate.py +80 -0
- bmcgo/codegen/lua/script/yaml_to_json.py +73 -0
- bmcgo/codegen/lua/templates/Makefile +114 -0
- bmcgo/codegen/lua/templates/apps/Makefile +261 -0
- bmcgo/codegen/lua/templates/apps/Makefile.mdb.mk +64 -0
- bmcgo/codegen/lua/templates/apps/app.lua.mako +19 -0
- bmcgo/codegen/lua/templates/apps/class.lua.mako +35 -0
- bmcgo/codegen/lua/templates/apps/client.lua.mako +429 -0
- bmcgo/codegen/lua/templates/apps/controller.lua.mako +276 -0
- bmcgo/codegen/lua/templates/apps/datas.lua.mako +8 -0
- bmcgo/codegen/lua/templates/apps/db.lua.mako +89 -0
- bmcgo/codegen/lua/templates/apps/entry.lua.mako +128 -0
- bmcgo/codegen/lua/templates/apps/feature.lua.mako +37 -0
- bmcgo/codegen/lua/templates/apps/generate_route.mako +25 -0
- bmcgo/codegen/lua/templates/apps/impl_feature.lua.mako +72 -0
- bmcgo/codegen/lua/templates/apps/ipmi.lua.mako +97 -0
- bmcgo/codegen/lua/templates/apps/ipmi_cmd.lua.mako +18 -0
- bmcgo/codegen/lua/templates/apps/ipmi_message.lua.mako +36 -0
- bmcgo/codegen/lua/templates/apps/local_db.lua.mako +263 -0
- bmcgo/codegen/lua/templates/apps/main.lua.mako +25 -0
- bmcgo/codegen/lua/templates/apps/mc.lua.mako +77 -0
- bmcgo/codegen/lua/templates/apps/mdb.lua.mako +45 -0
- bmcgo/codegen/lua/templates/apps/mdb_interface.lua.mako +73 -0
- bmcgo/codegen/lua/templates/apps/message.lua.mako +38 -0
- bmcgo/codegen/lua/templates/apps/model.lua.mako +239 -0
- bmcgo/codegen/lua/templates/apps/orm_classes.lua.mako +16 -0
- bmcgo/codegen/lua/templates/apps/plugin.lua.mako +8 -0
- bmcgo/codegen/lua/templates/apps/redfish.proto.mako +47 -0
- bmcgo/codegen/lua/templates/apps/service.lua.mako +440 -0
- bmcgo/codegen/lua/templates/apps/signal_listen.lua.mako +19 -0
- bmcgo/codegen/lua/templates/apps/utils/default_intf.lua.mako +41 -0
- bmcgo/codegen/lua/templates/apps/utils/enum.mako +10 -0
- bmcgo/codegen/lua/templates/apps/utils/imports.mako +13 -0
- bmcgo/codegen/lua/templates/apps/utils/mdb_intf.lua.mako +25 -0
- bmcgo/codegen/lua/templates/apps/utils/mdb_obj.lua.mako +23 -0
- bmcgo/codegen/lua/templates/apps/utils/message.mako +160 -0
- bmcgo/codegen/lua/templates/apps/utils/request.lua.mako +59 -0
- bmcgo/codegen/lua/templates/apps/utils/validate.mako +83 -0
- bmcgo/codegen/lua/templates/errors.lua.mako +36 -0
- bmcgo/codegen/lua/templates/messages.lua.mako +32 -0
- bmcgo/codegen/lua/templates/new_app/.clang-format.mako +170 -0
- bmcgo/codegen/lua/templates/new_app/.gitignore.mako +26 -0
- bmcgo/codegen/lua/templates/new_app/CHANGELOG.md.mako +0 -0
- bmcgo/codegen/lua/templates/new_app/CMakeLists.txt.mako +29 -0
- bmcgo/codegen/lua/templates/new_app/Makefile.mako +25 -0
- bmcgo/codegen/lua/templates/new_app/README.md.mako +0 -0
- bmcgo/codegen/lua/templates/new_app/conanfile.py.mako +7 -0
- bmcgo/codegen/lua/templates/new_app/config.cfg.mako +6 -0
- bmcgo/codegen/lua/templates/new_app/mds/model.json.mako +3 -0
- bmcgo/codegen/lua/templates/new_app/mds/service.json.mako +21 -0
- bmcgo/codegen/lua/templates/new_app/permissions.ini.mako +16 -0
- bmcgo/codegen/lua/templates/new_app/src/lualib/${project_name}_app.lua.mako +16 -0
- bmcgo/codegen/lua/templates/new_app/src/service/main.lua.mako +25 -0
- bmcgo/codegen/lua/templates/new_app/test/integration/test_${project_name}.conf.mako +9 -0
- bmcgo/codegen/lua/templates/new_app/test/integration/test_${project_name}.lua.mako +47 -0
- bmcgo/codegen/lua/templates/new_app/test/unit/test.lua.mako +23 -0
- bmcgo/codegen/lua/templates/new_app/user_conf/rootfs/etc/systemd/system/${project_name}.service.mako +18 -0
- bmcgo/codegen/lua/templates/new_app/user_conf/rootfs/etc/systemd/system/multi-user.target.wants/${project_name}.service.link +1 -0
- bmcgo/component/__init__.py +10 -0
- bmcgo/component/analysis/analysis.py +183 -0
- bmcgo/component/analysis/build_deps.py +165 -0
- bmcgo/component/analysis/data_deps.py +333 -0
- bmcgo/component/analysis/dep-rules.json +912 -0
- bmcgo/component/analysis/dep_node.py +110 -0
- bmcgo/component/analysis/intf_deps.py +163 -0
- bmcgo/component/analysis/intf_validation.py +254 -0
- bmcgo/component/analysis/rule.py +211 -0
- bmcgo/component/analysis/smc_dfx_whitelist.json +11 -0
- bmcgo/component/analysis/sr_validation.py +391 -0
- bmcgo/component/build.py +222 -0
- bmcgo/component/component_dt_version_parse.py +348 -0
- bmcgo/component/component_helper.py +114 -0
- bmcgo/component/coverage/__init__.py +11 -0
- bmcgo/component/coverage/c_incremental_cov_report.template +53 -0
- bmcgo/component/coverage/incremental_cov.py +464 -0
- bmcgo/component/deploy.py +110 -0
- bmcgo/component/gen.py +169 -0
- bmcgo/component/package_info.py +236 -0
- bmcgo/component/template/conanbase.py.mako +278 -0
- bmcgo/component/template/conanfile.deploy.py.mako +40 -0
- bmcgo/component/test.py +947 -0
- bmcgo/errors.py +119 -0
- bmcgo/frame.py +217 -0
- bmcgo/functional/__init__.py +10 -0
- bmcgo/functional/analysis.py +96 -0
- bmcgo/functional/bmc_studio_action.py +98 -0
- bmcgo/functional/check.py +185 -0
- bmcgo/functional/conan_index_build.py +251 -0
- bmcgo/functional/config.py +332 -0
- bmcgo/functional/csr_build.py +724 -0
- bmcgo/functional/deploy.py +263 -0
- bmcgo/functional/diff.py +235 -0
- bmcgo/functional/fetch.py +235 -0
- bmcgo/functional/full_component.py +391 -0
- bmcgo/functional/maintain.py +381 -0
- bmcgo/functional/new.py +166 -0
- bmcgo/functional/schema_valid.py +111 -0
- bmcgo/functional/simple_sign.py +104 -0
- bmcgo/functional/upgrade.py +78 -0
- bmcgo/ipmigen/__init__.py +13 -0
- bmcgo/ipmigen/ctype_defination.py +82 -0
- bmcgo/ipmigen/ipmigen.py +309 -0
- bmcgo/ipmigen/template/cmd.c.mako +366 -0
- bmcgo/ipmigen/template/ipmi.c.mako +25 -0
- bmcgo/ipmigen/template/ipmi.h.mako +51 -0
- bmcgo/logger.py +176 -0
- bmcgo/misc.py +117 -0
- bmcgo/target/app.yml +17 -0
- bmcgo/target/install_sdk.yml +15 -0
- bmcgo/target/personal.yml +53 -0
- bmcgo/target/publish.yml +45 -0
- bmcgo/tasks/__init__.py +11 -0
- bmcgo/tasks/download_buildtools_hm.py +124 -0
- bmcgo/tasks/misc.py +15 -0
- bmcgo/tasks/task.py +354 -0
- bmcgo/tasks/task_build_conan.py +714 -0
- bmcgo/tasks/task_build_rootfs_img.py +595 -0
- bmcgo/tasks/task_buildgppbin.py +88 -0
- bmcgo/tasks/task_buildhpm_ext4.py +82 -0
- bmcgo/tasks/task_create_interface_config.py +122 -0
- bmcgo/tasks/task_download_buildtools.py +99 -0
- bmcgo/tasks/task_download_dependency.py +72 -0
- bmcgo/tasks/task_hpm_envir_prepare.py +112 -0
- bmcgo/tasks/task_packet_to_supporte.py +87 -0
- bmcgo/tasks/task_prepare.py +105 -0
- bmcgo/tasks/task_sign_and_pack_hpm.py +42 -0
- bmcgo/utils/__init__.py +10 -0
- bmcgo/utils/buffer.py +128 -0
- bmcgo/utils/combine_json_schemas.py +170 -0
- bmcgo/utils/component_post.py +54 -0
- bmcgo/utils/component_version_check.py +86 -0
- bmcgo/utils/config.py +1067 -0
- bmcgo/utils/fetch_component_code.py +232 -0
- bmcgo/utils/install_manager.py +61 -0
- bmcgo/utils/installations/__init__.py +10 -0
- bmcgo/utils/installations/base_installer.py +70 -0
- bmcgo/utils/installations/install_consts.py +30 -0
- bmcgo/utils/installations/install_plans/bingo.yml +11 -0
- bmcgo/utils/installations/install_workflow.py +50 -0
- bmcgo/utils/installations/installers/apt_installer.py +177 -0
- bmcgo/utils/installations/installers/pip_installer.py +46 -0
- bmcgo/utils/installations/version_util.py +100 -0
- bmcgo/utils/mapping_config_patch.py +443 -0
- bmcgo/utils/perf_analysis.py +114 -0
- bmcgo/utils/tools.py +704 -0
- bmcgo/worker.py +417 -0
- openubmc_bingo-0.5.240.dist-info/METADATA +30 -0
- openubmc_bingo-0.5.240.dist-info/RECORD +242 -0
- openubmc_bingo-0.5.240.dist-info/WHEEL +5 -0
- openubmc_bingo-0.5.240.dist-info/entry_points.txt +2 -0
- openubmc_bingo-0.5.240.dist-info/top_level.txt +1 -0
bmcgo/__init__.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
# Copyright (c) 2024 Huawei Technologies Co., Ltd.
|
|
3
|
+
# openUBMC is licensed under Mulan PSL v2.
|
|
4
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
5
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
6
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
7
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
8
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
9
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
10
|
+
# See the Mulan PSL v2 for more details.
|
|
11
|
+
|
|
12
|
+
__version__ = '0.5.240'
|
bmcgo/bmcgo.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/python3
|
|
2
|
+
# coding: utf-8
|
|
3
|
+
# Copyright (c) 2024 Huawei Technologies Co., Ltd.
|
|
4
|
+
# openUBMC is licensed under Mulan PSL v2.
|
|
5
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
6
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
7
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
8
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
9
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
10
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
11
|
+
# See the Mulan PSL v2 for more details.
|
|
12
|
+
import sys
|
|
13
|
+
|
|
14
|
+
from bmcgo.cli.cli import main
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run():
|
|
18
|
+
sys.exit(main(sys.argv[1:]))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
if __name__ == '__main__':
|
|
22
|
+
run()
|
bmcgo/bmcgo_config.py
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# encoding=utf-8
|
|
3
|
+
# 描述:BMCGO配置管理
|
|
4
|
+
# Copyright (c) 2024 Huawei Technologies Co., Ltd.
|
|
5
|
+
# openUBMC is licensed under Mulan PSL v2.
|
|
6
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
7
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
8
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
9
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
10
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
11
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
12
|
+
# See the Mulan PSL v2 for more details.
|
|
13
|
+
import os
|
|
14
|
+
import sys
|
|
15
|
+
import re
|
|
16
|
+
import select
|
|
17
|
+
import shutil
|
|
18
|
+
import configparser
|
|
19
|
+
import tempfile
|
|
20
|
+
import functools
|
|
21
|
+
from configparser import NoSectionError, NoOptionError
|
|
22
|
+
from git import Repo
|
|
23
|
+
from semver import valid_range, satisfies
|
|
24
|
+
from bmcgo import errors
|
|
25
|
+
from bmcgo.utils.tools import Tools
|
|
26
|
+
from bmcgo import misc
|
|
27
|
+
from bmcgo import __version__
|
|
28
|
+
|
|
29
|
+
tools = Tools("bmcgo_config")
|
|
30
|
+
log = tools.log
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class BmcgoComp(object):
|
|
34
|
+
def __init__(self, folder, config: configparser.ConfigParser):
|
|
35
|
+
self.folder = os.path.realpath(folder)
|
|
36
|
+
self.config = config
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class BmcgoConanIndex(object):
|
|
40
|
+
def __init__(self, folder, config: configparser.ConfigParser):
|
|
41
|
+
self.folder = os.path.realpath(folder)
|
|
42
|
+
self.config = config
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class BmcgoManifest(object):
|
|
46
|
+
def __init__(self, folder, config: configparser.ConfigParser):
|
|
47
|
+
self.folder = os.path.realpath(folder)
|
|
48
|
+
self.config = config
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class BmcgoConfig(object):
|
|
52
|
+
def __init__(self):
|
|
53
|
+
"""初始化"""
|
|
54
|
+
self.component = None
|
|
55
|
+
self.conan_index = None
|
|
56
|
+
self.manifest = None
|
|
57
|
+
self.ibmc_sdk = None
|
|
58
|
+
self.new_frame = False
|
|
59
|
+
self.conan_blacklist = []
|
|
60
|
+
self.bmcgo_path = os.path.dirname(os.path.realpath(__file__))
|
|
61
|
+
self.functional_path = os.path.join(self.bmcgo_path, "functional")
|
|
62
|
+
self.studio_path = os.path.join(self.functional_path, "bmc_studio")
|
|
63
|
+
sys.path.append(self.functional_path)
|
|
64
|
+
sys.path.append(self.studio_path)
|
|
65
|
+
self.cwd = os.getcwd()
|
|
66
|
+
self._bmcgo_config_init()
|
|
67
|
+
self.bmcgo_system_config_path = os.path.join("/etc", "bmcgo.conf")
|
|
68
|
+
self.bmcgo_system_config = configparser.ConfigParser()
|
|
69
|
+
self.bmcgo_global_config_path = os.path.join(os.environ["HOME"], ".bmcgo", "config")
|
|
70
|
+
self.bmcgo_global_config = configparser.ConfigParser()
|
|
71
|
+
self.bmcgo_local_config_path = os.path.join(self.cwd, ".bmcgo", "config")
|
|
72
|
+
self.bmcgo_local_config = configparser.ConfigParser()
|
|
73
|
+
self.bmcgo_config_list = {}
|
|
74
|
+
self._bmcgo_config_load()
|
|
75
|
+
|
|
76
|
+
@functools.cached_property
|
|
77
|
+
def partner_mode(self):
|
|
78
|
+
"""是否是伙伴模式"""
|
|
79
|
+
"""勿删除,用于构建伙伴模式bmcgo,return True"""
|
|
80
|
+
return True
|
|
81
|
+
|
|
82
|
+
@functools.cached_property
|
|
83
|
+
def current_branch(self):
|
|
84
|
+
folder = self.manifest.folder if self.manifest else self.component.folder
|
|
85
|
+
repo = Repo(folder)
|
|
86
|
+
return repo.active_branch.name
|
|
87
|
+
|
|
88
|
+
def _bmcgo_config_init(self):
|
|
89
|
+
"""配置初始化"""
|
|
90
|
+
cwd = self.cwd
|
|
91
|
+
if os.path.isfile("frame.py"):
|
|
92
|
+
self.manifest = BmcgoManifest(os.path.realpath(os.path.join(cwd, "..")), None)
|
|
93
|
+
return
|
|
94
|
+
if os.path.isfile("build/frame.py"):
|
|
95
|
+
self.manifest = BmcgoManifest(cwd, None)
|
|
96
|
+
return
|
|
97
|
+
while cwd != "/":
|
|
98
|
+
config_file = os.path.join(cwd, ".bmcgo", "config")
|
|
99
|
+
if os.path.isfile(config_file):
|
|
100
|
+
conf = configparser.ConfigParser()
|
|
101
|
+
conf.read(config_file)
|
|
102
|
+
try:
|
|
103
|
+
folder = conf.get("ibmc_sdk", misc.GLOBAL_BMCGO_CONF_FOLDER)
|
|
104
|
+
folder = os.path.join(cwd, folder)
|
|
105
|
+
self.ibmc_sdk = BmcgoConanIndex(folder, conf)
|
|
106
|
+
except (NoSectionError, NoOptionError):
|
|
107
|
+
log.debug("不是一个合法的ibmc_sdk仓")
|
|
108
|
+
try:
|
|
109
|
+
folder = conf.get("conan-index", misc.GLOBAL_BMCGO_CONF_FOLDER)
|
|
110
|
+
folder = os.path.join(cwd, folder)
|
|
111
|
+
self.conan_index = BmcgoConanIndex(folder, conf)
|
|
112
|
+
except (NoSectionError, NoOptionError):
|
|
113
|
+
log.debug("不是一个合法的conan-index仓")
|
|
114
|
+
self.new_frame = True
|
|
115
|
+
try:
|
|
116
|
+
folder = conf.get("manifest", misc.GLOBAL_BMCGO_CONF_FOLDER)
|
|
117
|
+
folder = os.path.join(cwd, folder)
|
|
118
|
+
self.manifest = BmcgoManifest(folder, conf)
|
|
119
|
+
except (NoSectionError, NoOptionError):
|
|
120
|
+
log.debug("不是一个合法的manifest仓")
|
|
121
|
+
self.new_frame = False
|
|
122
|
+
try:
|
|
123
|
+
self.conan_blacklist = conf.get("bmcgo", "conan-blacklist", raw=True).splitlines()
|
|
124
|
+
except (NoSectionError, NoOptionError):
|
|
125
|
+
log.debug("未在.bmcgo/config中找到conan-blacklist配置项,拉取全部connan")
|
|
126
|
+
try:
|
|
127
|
+
folder = conf.get("component", misc.GLOBAL_BMCGO_CONF_FOLDER)
|
|
128
|
+
folder = os.path.join(cwd, folder)
|
|
129
|
+
self.component = BmcgoComp(folder, conf)
|
|
130
|
+
except (NoSectionError, NoOptionError):
|
|
131
|
+
log.debug("不是一个合法的组件仓,尝试查找mds/service.json")
|
|
132
|
+
return
|
|
133
|
+
|
|
134
|
+
config_file = os.path.join(cwd, "mds", "service.json")
|
|
135
|
+
if self.manifest is None and os.path.isfile(config_file):
|
|
136
|
+
self.component = BmcgoComp(cwd, None)
|
|
137
|
+
return
|
|
138
|
+
|
|
139
|
+
cwd = os.path.dirname(cwd)
|
|
140
|
+
|
|
141
|
+
def _bmcgo_config_load(self):
|
|
142
|
+
"""读取配置"""
|
|
143
|
+
self._bmcgo_system_config_load()
|
|
144
|
+
self._bmcgo_global_config_load()
|
|
145
|
+
self._bmcgo_local_config_load()
|
|
146
|
+
|
|
147
|
+
def _bmcgo_system_config_load(self):
|
|
148
|
+
"""读取配置"""
|
|
149
|
+
if os.path.isfile(self.bmcgo_system_config_path):
|
|
150
|
+
self.bmcgo_system_config.read(self.bmcgo_system_config_path)
|
|
151
|
+
for section in self.bmcgo_system_config.sections():
|
|
152
|
+
for k, v in self.bmcgo_system_config.items(section):
|
|
153
|
+
self._generate_bmcgo_config(section, k, v)
|
|
154
|
+
|
|
155
|
+
def _bmcgo_global_config_load(self):
|
|
156
|
+
"""读取配置"""
|
|
157
|
+
if os.path.isfile(self.bmcgo_global_config_path):
|
|
158
|
+
self.bmcgo_global_config.read(self.bmcgo_global_config_path)
|
|
159
|
+
for section in self.bmcgo_global_config.sections():
|
|
160
|
+
for k, v in self.bmcgo_global_config.items(section):
|
|
161
|
+
self._generate_bmcgo_config(section, k, v)
|
|
162
|
+
|
|
163
|
+
def _bmcgo_local_config_load(self):
|
|
164
|
+
"""读取配置"""
|
|
165
|
+
if os.path.isfile(self.bmcgo_local_config_path):
|
|
166
|
+
self.bmcgo_local_config.read(self.bmcgo_local_config_path)
|
|
167
|
+
for section in self.bmcgo_local_config.sections():
|
|
168
|
+
for k, v in self.bmcgo_local_config.items(section):
|
|
169
|
+
self._generate_bmcgo_config(section, k, v)
|
|
170
|
+
|
|
171
|
+
def _generate_bmcgo_config(self, section, key, value):
|
|
172
|
+
"""读取配置"""
|
|
173
|
+
if section not in self.bmcgo_config_list:
|
|
174
|
+
self.bmcgo_config_list[section] = {key: value}
|
|
175
|
+
else:
|
|
176
|
+
self.bmcgo_config_list[section][key] = value
|
bmcgo/cli/__init__.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
# Copyright (c) 2024 Huawei Technologies Co., Ltd.
|
|
3
|
+
# openUBMC is licensed under Mulan PSL v2.
|
|
4
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
5
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
6
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
7
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
8
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
9
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
10
|
+
# See the Mulan PSL v2 for more details.
|