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.

Files changed (242) hide show
  1. bmcgo/__init__.py +12 -0
  2. bmcgo/bmcgo.py +22 -0
  3. bmcgo/bmcgo_config.py +176 -0
  4. bmcgo/cli/__init__.py +10 -0
  5. bmcgo/cli/cli.py +584 -0
  6. bmcgo/codegen/__init__.py +14 -0
  7. bmcgo/codegen/c/__init__.py +9 -0
  8. bmcgo/codegen/c/annotation.py +52 -0
  9. bmcgo/codegen/c/argument.py +42 -0
  10. bmcgo/codegen/c/codegen.py +153 -0
  11. bmcgo/codegen/c/comment.py +22 -0
  12. bmcgo/codegen/c/ctype_defination.py +353 -0
  13. bmcgo/codegen/c/helper.py +87 -0
  14. bmcgo/codegen/c/interface.py +63 -0
  15. bmcgo/codegen/c/method.py +82 -0
  16. bmcgo/codegen/c/property.py +180 -0
  17. bmcgo/codegen/c/renderer.py +21 -0
  18. bmcgo/codegen/c/signal.py +64 -0
  19. bmcgo/codegen/c/template/client.c.mako +145 -0
  20. bmcgo/codegen/c/template/client.h.mako +36 -0
  21. bmcgo/codegen/c/template/interface.c.mako +0 -0
  22. bmcgo/codegen/c/template/interface.introspect.xml.mako +99 -0
  23. bmcgo/codegen/c/template/micro_component.c.mako +32 -0
  24. bmcgo/codegen/c/template/public.c.mako +228 -0
  25. bmcgo/codegen/c/template/public.h.mako +128 -0
  26. bmcgo/codegen/c/template/server.c.mako +104 -0
  27. bmcgo/codegen/c/template/server.h.mako +36 -0
  28. bmcgo/codegen/lua/.lua-format +7 -0
  29. bmcgo/codegen/lua/Makefile +101 -0
  30. bmcgo/codegen/lua/__init__.py +9 -0
  31. bmcgo/codegen/lua/codegen.py +171 -0
  32. bmcgo/codegen/lua/proto/Makefile +87 -0
  33. bmcgo/codegen/lua/proto/ipmi_types.proto +17 -0
  34. bmcgo/codegen/lua/proto/types.proto +52 -0
  35. bmcgo/codegen/lua/script/check_intfs.py +161 -0
  36. bmcgo/codegen/lua/script/dto/__init__.py +11 -0
  37. bmcgo/codegen/lua/script/dto/exception.py +53 -0
  38. bmcgo/codegen/lua/script/dto/kepler_abstract.py +47 -0
  39. bmcgo/codegen/lua/script/dto/options.py +33 -0
  40. bmcgo/codegen/lua/script/dto/print_simple.py +19 -0
  41. bmcgo/codegen/lua/script/dto/redfish_api.py +241 -0
  42. bmcgo/codegen/lua/script/dto/url_route.py +195 -0
  43. bmcgo/codegen/lua/script/gen_db_json.py +444 -0
  44. bmcgo/codegen/lua/script/gen_depends.py +89 -0
  45. bmcgo/codegen/lua/script/gen_entry.py +263 -0
  46. bmcgo/codegen/lua/script/gen_feature_json.py +156 -0
  47. bmcgo/codegen/lua/script/gen_historical_local_db_json.py +88 -0
  48. bmcgo/codegen/lua/script/gen_intf_json.py +261 -0
  49. bmcgo/codegen/lua/script/gen_intf_rpc_json.py +575 -0
  50. bmcgo/codegen/lua/script/gen_ipmi_json.py +485 -0
  51. bmcgo/codegen/lua/script/gen_mdb_json.py +117 -0
  52. bmcgo/codegen/lua/script/gen_rpc_msg_json.py +487 -0
  53. bmcgo/codegen/lua/script/gen_schema.py +302 -0
  54. bmcgo/codegen/lua/script/ipmi_types_pb2.py +135 -0
  55. bmcgo/codegen/lua/script/loader/__init__.py +11 -0
  56. bmcgo/codegen/lua/script/loader/file_utils.py +33 -0
  57. bmcgo/codegen/lua/script/loader/kepler_abstract_collect.py +79 -0
  58. bmcgo/codegen/lua/script/loader/kepler_abstract_loader.py +47 -0
  59. bmcgo/codegen/lua/script/loader/redfish_loader.py +127 -0
  60. bmcgo/codegen/lua/script/lua_format.py +62 -0
  61. bmcgo/codegen/lua/script/mds_util.py +385 -0
  62. bmcgo/codegen/lua/script/merge_model.py +330 -0
  63. bmcgo/codegen/lua/script/merge_proto_algo.py +85 -0
  64. bmcgo/codegen/lua/script/proto_loader.py +47 -0
  65. bmcgo/codegen/lua/script/proto_plugin.py +140 -0
  66. bmcgo/codegen/lua/script/redfish_source_tree.py +118 -0
  67. bmcgo/codegen/lua/script/render_utils/__init__.py +38 -0
  68. bmcgo/codegen/lua/script/render_utils/base.py +25 -0
  69. bmcgo/codegen/lua/script/render_utils/client_lua.py +98 -0
  70. bmcgo/codegen/lua/script/render_utils/controller_lua.py +71 -0
  71. bmcgo/codegen/lua/script/render_utils/db_lua.py +224 -0
  72. bmcgo/codegen/lua/script/render_utils/error_lua.py +185 -0
  73. bmcgo/codegen/lua/script/render_utils/factory.py +52 -0
  74. bmcgo/codegen/lua/script/render_utils/ipmi_lua.py +159 -0
  75. bmcgo/codegen/lua/script/render_utils/ipmi_message_lua.py +24 -0
  76. bmcgo/codegen/lua/script/render_utils/mdb_lua.py +177 -0
  77. bmcgo/codegen/lua/script/render_utils/mdb_register.py +215 -0
  78. bmcgo/codegen/lua/script/render_utils/message_lua.py +26 -0
  79. bmcgo/codegen/lua/script/render_utils/messages_lua.py +156 -0
  80. bmcgo/codegen/lua/script/render_utils/model_lua.py +485 -0
  81. bmcgo/codegen/lua/script/render_utils/old_model_lua.py +429 -0
  82. bmcgo/codegen/lua/script/render_utils/plugin_lua.py +38 -0
  83. bmcgo/codegen/lua/script/render_utils/redfish_proto.py +86 -0
  84. bmcgo/codegen/lua/script/render_utils/request_lua.py +76 -0
  85. bmcgo/codegen/lua/script/render_utils/service_lua.py +130 -0
  86. bmcgo/codegen/lua/script/render_utils/utils_message_lua.py +125 -0
  87. bmcgo/codegen/lua/script/render_utils/validate_lua.py +221 -0
  88. bmcgo/codegen/lua/script/sep_ipmi_message_cmds.py +217 -0
  89. bmcgo/codegen/lua/script/template.py +166 -0
  90. bmcgo/codegen/lua/script/types_pb2.py +516 -0
  91. bmcgo/codegen/lua/script/utils.py +663 -0
  92. bmcgo/codegen/lua/script/validate.py +80 -0
  93. bmcgo/codegen/lua/script/yaml_to_json.py +73 -0
  94. bmcgo/codegen/lua/templates/Makefile +114 -0
  95. bmcgo/codegen/lua/templates/apps/Makefile +261 -0
  96. bmcgo/codegen/lua/templates/apps/Makefile.mdb.mk +64 -0
  97. bmcgo/codegen/lua/templates/apps/app.lua.mako +19 -0
  98. bmcgo/codegen/lua/templates/apps/class.lua.mako +35 -0
  99. bmcgo/codegen/lua/templates/apps/client.lua.mako +429 -0
  100. bmcgo/codegen/lua/templates/apps/controller.lua.mako +276 -0
  101. bmcgo/codegen/lua/templates/apps/datas.lua.mako +8 -0
  102. bmcgo/codegen/lua/templates/apps/db.lua.mako +89 -0
  103. bmcgo/codegen/lua/templates/apps/entry.lua.mako +128 -0
  104. bmcgo/codegen/lua/templates/apps/feature.lua.mako +37 -0
  105. bmcgo/codegen/lua/templates/apps/generate_route.mako +25 -0
  106. bmcgo/codegen/lua/templates/apps/impl_feature.lua.mako +72 -0
  107. bmcgo/codegen/lua/templates/apps/ipmi.lua.mako +97 -0
  108. bmcgo/codegen/lua/templates/apps/ipmi_cmd.lua.mako +18 -0
  109. bmcgo/codegen/lua/templates/apps/ipmi_message.lua.mako +36 -0
  110. bmcgo/codegen/lua/templates/apps/local_db.lua.mako +263 -0
  111. bmcgo/codegen/lua/templates/apps/main.lua.mako +25 -0
  112. bmcgo/codegen/lua/templates/apps/mc.lua.mako +77 -0
  113. bmcgo/codegen/lua/templates/apps/mdb.lua.mako +45 -0
  114. bmcgo/codegen/lua/templates/apps/mdb_interface.lua.mako +73 -0
  115. bmcgo/codegen/lua/templates/apps/message.lua.mako +38 -0
  116. bmcgo/codegen/lua/templates/apps/model.lua.mako +239 -0
  117. bmcgo/codegen/lua/templates/apps/orm_classes.lua.mako +16 -0
  118. bmcgo/codegen/lua/templates/apps/plugin.lua.mako +8 -0
  119. bmcgo/codegen/lua/templates/apps/redfish.proto.mako +47 -0
  120. bmcgo/codegen/lua/templates/apps/service.lua.mako +440 -0
  121. bmcgo/codegen/lua/templates/apps/signal_listen.lua.mako +19 -0
  122. bmcgo/codegen/lua/templates/apps/utils/default_intf.lua.mako +41 -0
  123. bmcgo/codegen/lua/templates/apps/utils/enum.mako +10 -0
  124. bmcgo/codegen/lua/templates/apps/utils/imports.mako +13 -0
  125. bmcgo/codegen/lua/templates/apps/utils/mdb_intf.lua.mako +25 -0
  126. bmcgo/codegen/lua/templates/apps/utils/mdb_obj.lua.mako +23 -0
  127. bmcgo/codegen/lua/templates/apps/utils/message.mako +160 -0
  128. bmcgo/codegen/lua/templates/apps/utils/request.lua.mako +59 -0
  129. bmcgo/codegen/lua/templates/apps/utils/validate.mako +83 -0
  130. bmcgo/codegen/lua/templates/errors.lua.mako +36 -0
  131. bmcgo/codegen/lua/templates/messages.lua.mako +32 -0
  132. bmcgo/codegen/lua/templates/new_app/.clang-format.mako +170 -0
  133. bmcgo/codegen/lua/templates/new_app/.gitignore.mako +26 -0
  134. bmcgo/codegen/lua/templates/new_app/CHANGELOG.md.mako +0 -0
  135. bmcgo/codegen/lua/templates/new_app/CMakeLists.txt.mako +29 -0
  136. bmcgo/codegen/lua/templates/new_app/Makefile.mako +25 -0
  137. bmcgo/codegen/lua/templates/new_app/README.md.mako +0 -0
  138. bmcgo/codegen/lua/templates/new_app/conanfile.py.mako +7 -0
  139. bmcgo/codegen/lua/templates/new_app/config.cfg.mako +6 -0
  140. bmcgo/codegen/lua/templates/new_app/mds/model.json.mako +3 -0
  141. bmcgo/codegen/lua/templates/new_app/mds/service.json.mako +21 -0
  142. bmcgo/codegen/lua/templates/new_app/permissions.ini.mako +16 -0
  143. bmcgo/codegen/lua/templates/new_app/src/lualib/${project_name}_app.lua.mako +16 -0
  144. bmcgo/codegen/lua/templates/new_app/src/service/main.lua.mako +25 -0
  145. bmcgo/codegen/lua/templates/new_app/test/integration/test_${project_name}.conf.mako +9 -0
  146. bmcgo/codegen/lua/templates/new_app/test/integration/test_${project_name}.lua.mako +47 -0
  147. bmcgo/codegen/lua/templates/new_app/test/unit/test.lua.mako +23 -0
  148. bmcgo/codegen/lua/templates/new_app/user_conf/rootfs/etc/systemd/system/${project_name}.service.mako +18 -0
  149. bmcgo/codegen/lua/templates/new_app/user_conf/rootfs/etc/systemd/system/multi-user.target.wants/${project_name}.service.link +1 -0
  150. bmcgo/component/__init__.py +10 -0
  151. bmcgo/component/analysis/analysis.py +183 -0
  152. bmcgo/component/analysis/build_deps.py +165 -0
  153. bmcgo/component/analysis/data_deps.py +333 -0
  154. bmcgo/component/analysis/dep-rules.json +912 -0
  155. bmcgo/component/analysis/dep_node.py +110 -0
  156. bmcgo/component/analysis/intf_deps.py +163 -0
  157. bmcgo/component/analysis/intf_validation.py +254 -0
  158. bmcgo/component/analysis/rule.py +211 -0
  159. bmcgo/component/analysis/smc_dfx_whitelist.json +11 -0
  160. bmcgo/component/analysis/sr_validation.py +391 -0
  161. bmcgo/component/build.py +222 -0
  162. bmcgo/component/component_dt_version_parse.py +348 -0
  163. bmcgo/component/component_helper.py +114 -0
  164. bmcgo/component/coverage/__init__.py +11 -0
  165. bmcgo/component/coverage/c_incremental_cov_report.template +53 -0
  166. bmcgo/component/coverage/incremental_cov.py +464 -0
  167. bmcgo/component/deploy.py +110 -0
  168. bmcgo/component/gen.py +169 -0
  169. bmcgo/component/package_info.py +236 -0
  170. bmcgo/component/template/conanbase.py.mako +278 -0
  171. bmcgo/component/template/conanfile.deploy.py.mako +40 -0
  172. bmcgo/component/test.py +947 -0
  173. bmcgo/errors.py +119 -0
  174. bmcgo/frame.py +217 -0
  175. bmcgo/functional/__init__.py +10 -0
  176. bmcgo/functional/analysis.py +96 -0
  177. bmcgo/functional/bmc_studio_action.py +98 -0
  178. bmcgo/functional/check.py +185 -0
  179. bmcgo/functional/conan_index_build.py +251 -0
  180. bmcgo/functional/config.py +332 -0
  181. bmcgo/functional/csr_build.py +724 -0
  182. bmcgo/functional/deploy.py +263 -0
  183. bmcgo/functional/diff.py +235 -0
  184. bmcgo/functional/fetch.py +235 -0
  185. bmcgo/functional/full_component.py +391 -0
  186. bmcgo/functional/maintain.py +381 -0
  187. bmcgo/functional/new.py +166 -0
  188. bmcgo/functional/schema_valid.py +111 -0
  189. bmcgo/functional/simple_sign.py +104 -0
  190. bmcgo/functional/upgrade.py +78 -0
  191. bmcgo/ipmigen/__init__.py +13 -0
  192. bmcgo/ipmigen/ctype_defination.py +82 -0
  193. bmcgo/ipmigen/ipmigen.py +309 -0
  194. bmcgo/ipmigen/template/cmd.c.mako +366 -0
  195. bmcgo/ipmigen/template/ipmi.c.mako +25 -0
  196. bmcgo/ipmigen/template/ipmi.h.mako +51 -0
  197. bmcgo/logger.py +176 -0
  198. bmcgo/misc.py +117 -0
  199. bmcgo/target/app.yml +17 -0
  200. bmcgo/target/install_sdk.yml +15 -0
  201. bmcgo/target/personal.yml +53 -0
  202. bmcgo/target/publish.yml +45 -0
  203. bmcgo/tasks/__init__.py +11 -0
  204. bmcgo/tasks/download_buildtools_hm.py +124 -0
  205. bmcgo/tasks/misc.py +15 -0
  206. bmcgo/tasks/task.py +354 -0
  207. bmcgo/tasks/task_build_conan.py +714 -0
  208. bmcgo/tasks/task_build_rootfs_img.py +595 -0
  209. bmcgo/tasks/task_buildgppbin.py +88 -0
  210. bmcgo/tasks/task_buildhpm_ext4.py +82 -0
  211. bmcgo/tasks/task_create_interface_config.py +122 -0
  212. bmcgo/tasks/task_download_buildtools.py +99 -0
  213. bmcgo/tasks/task_download_dependency.py +72 -0
  214. bmcgo/tasks/task_hpm_envir_prepare.py +112 -0
  215. bmcgo/tasks/task_packet_to_supporte.py +87 -0
  216. bmcgo/tasks/task_prepare.py +105 -0
  217. bmcgo/tasks/task_sign_and_pack_hpm.py +42 -0
  218. bmcgo/utils/__init__.py +10 -0
  219. bmcgo/utils/buffer.py +128 -0
  220. bmcgo/utils/combine_json_schemas.py +170 -0
  221. bmcgo/utils/component_post.py +54 -0
  222. bmcgo/utils/component_version_check.py +86 -0
  223. bmcgo/utils/config.py +1067 -0
  224. bmcgo/utils/fetch_component_code.py +232 -0
  225. bmcgo/utils/install_manager.py +61 -0
  226. bmcgo/utils/installations/__init__.py +10 -0
  227. bmcgo/utils/installations/base_installer.py +70 -0
  228. bmcgo/utils/installations/install_consts.py +30 -0
  229. bmcgo/utils/installations/install_plans/bingo.yml +11 -0
  230. bmcgo/utils/installations/install_workflow.py +50 -0
  231. bmcgo/utils/installations/installers/apt_installer.py +177 -0
  232. bmcgo/utils/installations/installers/pip_installer.py +46 -0
  233. bmcgo/utils/installations/version_util.py +100 -0
  234. bmcgo/utils/mapping_config_patch.py +443 -0
  235. bmcgo/utils/perf_analysis.py +114 -0
  236. bmcgo/utils/tools.py +704 -0
  237. bmcgo/worker.py +417 -0
  238. openubmc_bingo-0.5.240.dist-info/METADATA +30 -0
  239. openubmc_bingo-0.5.240.dist-info/RECORD +242 -0
  240. openubmc_bingo-0.5.240.dist-info/WHEEL +5 -0
  241. openubmc_bingo-0.5.240.dist-info/entry_points.txt +2 -0
  242. openubmc_bingo-0.5.240.dist-info/top_level.txt +1 -0
@@ -0,0 +1,160 @@
1
+ <%namespace name="validate" file="validate.mako"/>
2
+ <%def name="group(msg,controller)">
3
+ %for k,msg in render_utils.get_group_fields(msg).items():
4
+ function C${controller['name']}:set_group${k}(user, ${render_utils.get_group_names_for_set(msg)})
5
+ end
6
+
7
+ %endfor
8
+ </%def>
9
+ <%def name="join_group(msg)">
10
+ %for k,msg in render_utils.get_group_fields(msg).items():
11
+ result:join(self:set_group${k}(user, ${render_utils.get_group_names_for_join(msg)}))
12
+ %endfor
13
+ </%def>
14
+ <%def name="render(msg, intf_name='')">
15
+ % if 'properties' in msg:
16
+ ---@class ${msg['package']}.${msg['name']}
17
+ % for p in msg['properties']:
18
+ ---@field ${p.get('original_name', p['name'])} ${utils_py.do_type_to_lua(p['type'], 'repeated' in p and p['repeated'])}
19
+ % endfor
20
+ local T${msg['name']} = {}
21
+ T${msg['name']}.__index = T${msg['name']}
22
+ T${msg['name']}.group = {${render_utils.get_groups(msg)}}
23
+
24
+ local function T${msg['name']}_from_obj(obj)
25
+ % for m in render_utils.get_enums(msg):
26
+ % if 'repeated' in m and m['repeated']:
27
+ obj.${m['name']} = utils.from_obj(${m['type']}, obj.${m['name']}, true)
28
+ % else:
29
+ obj.${m['name']} = obj.${m['name']} and ${m['type']}.new(obj.${m['name']})
30
+ % endif
31
+ %endfor
32
+ % for m in render_utils.get_sub_type(msg):
33
+ % if 'repeated' in m and m['repeated']:
34
+ obj.${m['name']} = utils.from_obj(${m['type']}, obj.${m['name']}, true)
35
+ % else:
36
+ obj.${m['name']} = utils.from_obj(${m['type']}, obj.${m['name']})
37
+ % endif
38
+ %endfor
39
+ % for e in render_utils.get_enums(msg):
40
+ %endfor
41
+ % for m in render_utils.get_sub_type(msg):
42
+ %endfor
43
+ % for a, b in render_utils.get_rename_fields(msg):
44
+ utils.rename(obj, "${b}", "${a}")
45
+ %endfor
46
+ return setmetatable(obj, T${msg['name']})
47
+ end
48
+
49
+ %if msg['type'] == "Dictionary":
50
+ function T${msg['name']}.new(dict)
51
+ return T${msg['name']}_from_obj(dict)
52
+ end
53
+
54
+ ---@param obj ${msg['package']}.${msg['name']}
55
+ function T${msg['name']}:init_from_obj(obj)
56
+ self = obj
57
+ end
58
+
59
+ function T${msg['name']}:remove_error_props(errs, obj)
60
+ utils.remove_obj_error_property(obj, errs, T${msg['name']}.group)
61
+ end
62
+
63
+ T${msg['name']}.from_obj = T${msg['name']}_from_obj
64
+
65
+ T${msg['name']}.proto_property = {}
66
+
67
+ T${msg['name']}.default = {}
68
+
69
+ T${msg['name']}.struct = {}
70
+
71
+ function T${msg['name']}:validate(prefix, errs, need_convert)
72
+ prefix = prefix or ''
73
+ ${validate.render_dict(msg, 'self.', 'prefix')}
74
+ T${msg['name']}:remove_error_props(errs, self)
75
+ return self
76
+ end
77
+
78
+ function T${msg['name']}:unpack(_)
79
+ return self
80
+ end
81
+ % else:
82
+ function T${msg['name']}.new(${render_utils.params(msg)})
83
+ return T${msg['name']}_from_obj({
84
+ ${utils_py.construct(msg)}
85
+ })
86
+ end
87
+ ---@param obj ${msg['package']}.${msg['name']}
88
+ function T${msg['name']}:init_from_obj(obj)
89
+ ${render_utils.obj_construct(msg)}
90
+ end
91
+
92
+ function T${msg['name']}:remove_error_props(errs, obj)
93
+ utils.remove_obj_error_property(obj, errs, T${msg['name']}.group)
94
+ end
95
+
96
+ T${msg['name']}.from_obj = T${msg['name']}_from_obj
97
+
98
+ T${msg['name']}.proto_property = {
99
+ % for v in render_utils.get_requires(utils_py.make_get_message(msg['name'])):
100
+ % for vv in v[1]:
101
+ '${v[0].get('original_name', v[0]['name'])}',
102
+ % endfor
103
+ % endfor
104
+ }
105
+
106
+ T${msg['name']}.default = {
107
+ % for v in render_utils.get_requires(utils_py.make_get_message(msg['name'])):
108
+ % for vv in v[1]:
109
+ % for vvv in vv[1]:
110
+ ${render_utils.get_default(vv[0], vvv)},
111
+ % endfor
112
+ % endfor
113
+ % endfor
114
+ }
115
+
116
+ % if version >= 16:
117
+ ${render_utils.get_descriptions(msg, intf_name)}
118
+ %endif
119
+
120
+ T${msg['name']}.struct = {
121
+ % for v in render_utils.get_requires(utils_py.make_get_message(msg['name'])):
122
+ % for vv in v[1]:
123
+ % for vvv in vv[1]:
124
+ {name = '${v[0].get('original_name', v[0]['name'])}', is_array = ${render_utils.is_array(vv[0])}, struct = ${render_utils.get_struct(vvv)}},
125
+ % endfor
126
+ % endfor
127
+ % endfor
128
+ }
129
+
130
+ function T${msg['name']}:validate(prefix, errs, need_convert)
131
+ prefix = prefix or ''
132
+ %if 'has_struct' in msg['options'] and msg['options']['has_struct'] :
133
+ ${validate.render_struct(msg['name'], 'self.', 'prefix')}
134
+ %else:
135
+ ${validate.render(msg['name'], 'self.', 'prefix')}
136
+ %endif
137
+ T${msg['name']}:remove_error_props(errs, self)
138
+ validate.CheckUnknowProperty(self, T${msg['name']}.proto_property, errs, need_convert)
139
+ return self
140
+ end
141
+
142
+ % if len(render_utils.get_enums(msg)) > 0 or len(render_utils.get_sub_type(msg)) > 0:
143
+ function T${msg['name']}:unpack(raw)
144
+ % else:
145
+ function T${msg['name']}:unpack(_)
146
+ % endif
147
+ % if len(msg['properties']) > 0:
148
+ % for p in render_utils.get_enums(msg):
149
+ % if 'repeated' in p and p['repeated']:
150
+ local ${p.get('original_name', p['name'])} = utils.unpack_enum(raw, utils.from_obj(${p['type']}, self.${p.get('original_name', p['name'])}, true), true)
151
+ % else:
152
+ local ${p.get('original_name', p['name'])} = utils.unpack_enum(raw, self.${p.get('original_name', p['name'])})
153
+ % endif
154
+ % endfor
155
+ return ${render_utils.unpack(msg)}
156
+ % endif
157
+ end
158
+ % endif
159
+ % endif
160
+ </%def>
@@ -0,0 +1,59 @@
1
+ <%def name="assign_property_by_kepler(msg, before_name)">
2
+ % for pt in msg.properties:
3
+ %if pt.complex_type(render_utils.msg_mgr):
4
+ %if before_name == "":
5
+ ${assign_property_by_kepler(render_utils.get(pt.attr_type), "rsp")}
6
+ %else:
7
+ ${assign_property_by_kepler(render_utils.get(pt.attr_type), f"{before_name}['{pt.out_attr_name}']")}
8
+ %endif
9
+ %else:
10
+ %if pt.attr_to_view.valid():
11
+ %if pt.attr_to_view.use_self:
12
+ ${before_name}['${pt.out_attr_name}'] = ${pt.attr_to_view.cvt_fun}(${render_utils.inner_var(message_name, pt)}.${pt.mapping.inner_attr_name}:value(), ${render_utils.inner_var(message_name, pt)})
13
+ %else:
14
+ ${before_name}['${pt.out_attr_name}'] = ${pt.attr_to_view.cvt_fun}(${render_utils.inner_var(message_name, pt)}.${pt.mapping.inner_attr_name}:value())
15
+ %endif
16
+ %else:
17
+ ${before_name}['${pt.out_attr_name}'] = ${render_utils.inner_var(message_name, pt)}.${pt.mapping.inner_attr_name}:value()
18
+ %endif
19
+ %endif
20
+ % endfor
21
+ </%def>
22
+ <%def name="assign_property_by_redfish(msg, before_name)">
23
+ % for pt in msg.properties:
24
+ %if pt.complex_type(render_utils.msg_mgr):
25
+ %if before_name == "":
26
+ ${assign_property_by_redfish(render_utils.get(pt.attr_type), "req.body")}
27
+ %else:
28
+ ${assign_property_by_redfish(render_utils.get(pt.attr_type), f"{before_name}['{pt.out_attr_name}']")}
29
+ %endif
30
+ %else:
31
+ %if pt.attr_to_view.valid():
32
+ %if pt.attr_to_view.use_self:
33
+ ${render_utils.inner_var(message_name, pt)}.${pt.mapping.inner_attr_name} = ${pt.attr_to_view.cvt_fun}(${before_name}['${pt.out_attr_name}'], ${before_name})
34
+ %else:
35
+ ${render_utils.inner_var(message_name, pt)}.${pt.mapping.inner_attr_name} = ${pt.attr_to_view.cvt_fun}(${before_name}['${pt.out_attr_name}'])
36
+ %endif
37
+ %else:
38
+ ${render_utils.inner_var(message_name, pt)}.${pt.mapping.inner_attr_name} = ${before_name}['${pt.out_attr_name}']
39
+ %endif
40
+ %endif
41
+ % endfor
42
+ </%def>
43
+ <%def name="get(message_name)">
44
+ function CRoute:fill_get_response(req, rsp)
45
+ % for item in render_utils.related_objects(message_name).url_dict.items():
46
+ local ${render_utils.related_message(item[1].url_feature).class_var_name()} = self.app.bus:call_get_all(${item[0]})
47
+ % endfor
48
+ ${assign_property_by_kepler(render_utils.get(message_name), "")}
49
+ end
50
+ </%def>
51
+ <%def name="patch(message_name)">
52
+ function CRoute:new_kepler_objects(req)
53
+ % for item in render_utils.related_objects(message_name).url_dict.items():
54
+ local ${render_utils.related_message(item[1].url_feature).class_var_name()} = ${render_utils.related_message(item[1].url_feature).class_type()}.new()
55
+ % endfor
56
+ ${assign_property_by_redfish(render_utils.get(message_name), "")}
57
+ return ${", ".join([render_utils.related_message(item[1].url_feature).class_var_name() for item in render_utils.related_objects(message_name).url_dict.items()])}
58
+ end
59
+ </%def>
@@ -0,0 +1,83 @@
1
+
2
+ <%def name="render_base(msg_type, prefix, name_prefix)">
3
+ % for v in render_utils.get_validates(utils_py.make_get_message(msg_type)):
4
+ % if len(v[1]) > 0:
5
+ % if not render_utils.is_required(v[0]):
6
+ if ${render_utils.proper_name(v[0].get('original_name', v[0]['name']), prefix)} ~= nil then
7
+ % for vv in v[1]:
8
+ validate.${vv[0]}(${render_utils.validate_name(v[0].get('original_name', v[0]['name']), name_prefix)}, ${render_utils.proper_name(v[0].get('original_name', v[0]['name']), prefix)}, ${", ".join(vv[1])}${render_utils.readonly(vv[0],v[0].get('original_name', v[0]['name']),v[0]['type'],v[0]['options'])}, errs, need_convert)
9
+ % endfor
10
+ end
11
+ % else:
12
+ % for vv in v[1]:
13
+ validate.${vv[0]}(${render_utils.validate_name(v[0].get('original_name', v[0]['name']), name_prefix)}, ${render_utils.proper_name(v[0].get('original_name', v[0]['name']), prefix)}, ${", ".join(vv[1])}${render_utils.readonly(vv[0],v[0].get('original_name', v[0]['name']),v[0]['type'],v[0]['options'])}, errs, need_convert)
14
+ % endfor
15
+ %endif
16
+ %endif
17
+ %endfor
18
+ </%def>
19
+
20
+ <%def name="render(msg_type, prefix, name_prefix)">
21
+ % for v in render_utils.get_requires(utils_py.make_get_message(msg_type)):
22
+ % for vv in v[1]:
23
+ validate.${vv[0]}(${render_utils.validate_name(v[0].get('original_name', v[0]['name']), name_prefix)}, ${render_utils.proper_name(v[0].get('original_name', v[0]['name']), prefix)}, ${", ".join(vv[1])}${render_utils.readonly(vv[0],v[0].get('original_name', v[0]['name']),v[0]['type'],v[0]['options'])}, errs, need_convert)
24
+ % endfor
25
+ % endfor
26
+ ${render_base(msg_type, prefix, name_prefix)}
27
+ </%def>
28
+
29
+ <%def name="render_struct(msg_type, prefix, name_prefix)">
30
+ <% msg = utils_py.make_get_message(msg_type)%>
31
+ <% print(msg) %>
32
+ % for name, t in render_utils.get_struct_requires(msg).items():
33
+ % if t['repeated'] :
34
+ for _,v in pairs(self.${name}) do
35
+ ${t['type']}.new(${render_utils.params1('v', utils_py.make_get_message(t['type']))}):validate(prefix, errs, need_convert)
36
+ end
37
+ % else:
38
+ ${t['type']}.new(${render_utils.params1('self.' + name, utils_py.make_get_message(t['type']))}):validate(prefix, errs, need_convert)
39
+ % endif
40
+ % endfor
41
+
42
+ % for v in render_utils.get_no_struct_requires(utils_py.make_get_message(msg_type)):
43
+ % for vv in v[1]:
44
+ validate.${vv[0]}(${render_utils.validate_name(v[0].get('original_name', v[0]['name']), name_prefix)}, ${render_utils.proper_name(v[0].get('original_name', v[0]['name']), prefix)}, ${", ".join(vv[1])}${render_utils.readonly(vv[0],v[0].get('original_name', v[0]['name']),v[0]['type'],v[0]['options'])}, errs, need_convert)
45
+ % endfor
46
+ % endfor
47
+ ${render_base(msg_type, prefix, name_prefix)}
48
+ </%def>
49
+
50
+ <%def name="render_dict_item(msg_type, index, prefix, name_prefix)">
51
+ <% v = render_utils.get_requires(utils_py.make_get_message(msg_type))[index] %>
52
+ % for vv in v[1]:
53
+ validate.${vv[0]}(${render_utils.validate_name(v[0].get('original_name', v[0]['name']), name_prefix)}, ${'k' if index == 0 else 'v'}, ${", ".join(vv[1])}${render_utils.readonly(vv[0],v[0].get('original_name', v[0]['name']),v[0]['type'],v[0]['options'])}, errs, need_convert)
54
+ % endfor
55
+ ${render_base(msg_type, prefix, name_prefix)}
56
+ </%def>
57
+
58
+ <%def name="render_dict_struct_item(msg_type, index, prefix, name_prefix)">
59
+ <% value = 'k' if index == 0 else 'v' %>
60
+ <% v = render_utils.get_requires(utils_py.make_get_message(msg_type))[index] %>
61
+ <% name = v[0].get('original_name', v[0]['name']) %>
62
+ <% t = render_utils.get_struct_require(v[0]) %>
63
+ % if t['repeated'] :
64
+ for _,q in pairs(${value}) do
65
+ ${t['type']}.new(${render_utils.params1('q', utils_py.make_get_message(t['type']))}):validate(prefix, errs, need_convert)
66
+ end
67
+ % else:
68
+ ${t['type']}.new(${render_utils.params1(value, utils_py.make_get_message(t['type']))}):validate(prefix, errs, need_convert)
69
+ % endif
70
+ ${render_base(msg_type, prefix, name_prefix)}
71
+ </%def>
72
+
73
+ <%def name="render_dict(msg, prefix, name_prefix)">
74
+ for k, v in pairs(self) do
75
+ % for i, prop in enumerate(msg['properties']):
76
+ %if msg['options'] and prop.get('is_struct', False):
77
+ ${render_dict_struct_item(msg['name'], i, prefix, name_prefix)}
78
+ %else:
79
+ ${render_dict_item(msg['name'], i, prefix, name_prefix)}
80
+ %endif
81
+ %endfor
82
+ end
83
+ </%def>
@@ -0,0 +1,36 @@
1
+ ${make_header('lua')}
2
+ local log = require 'mc.logging'
3
+ local error = require 'mc.error'
4
+ local new_error = error.new_error
5
+ local print_log = error.print_log
6
+ local print_trace = error.print_trace
7
+ local regist_err_eng = error.register_err
8
+
9
+ local M = {}
10
+
11
+ % for name, err in root['messages'].items() :
12
+ local ${render_utils.get_error_name(name)} = {
13
+ name = "${name}",
14
+ format = ${utils_py.format_value(render_utils.format(err['message']), '')},
15
+ % if 'backtrace_level' in err :
16
+ backtrace_level = ${err['backtrace_level']},
17
+ % endif
18
+ % if 'severity' in err :
19
+ severity = '${err['severity']}',
20
+ % endif
21
+ }
22
+ M.${render_utils.get_error_name(name)} = ${render_utils.get_error_name(name)}.name
23
+ ---@return Error
24
+ function M.${render_utils.get_function_name(name)}(${render_utils.params(err['message'])})
25
+ local err_data = new_error(${render_utils.get_error_name(name)}.name, ${render_utils.get_error_name(name)}.format${render_utils.error_params(err)})
26
+ regist_err_eng(${render_utils.get_error_name(name)}, ${render_utils.get_http_response(root, err)}, ${render_utils.get_redfish_response(root, err)}, ${render_utils.get_ipmi_response_json(err)})
27
+ print_log(${render_utils.get_severity_err(err)}, ${render_utils.get_error_name(name)}.format${render_utils.error_params(err)})
28
+ % if 'backtrace_level' in err and err['backtrace_level'] > 0 :
29
+ print_trace(${render_utils.get_backtrace_level(root, err)}, err_data) -- the first parameter means backtrace level
30
+ % endif
31
+ return err_data
32
+ end
33
+
34
+ % endfor
35
+
36
+ return M
@@ -0,0 +1,32 @@
1
+ ${make_header('lua')}
2
+ local log = require 'mc.logging'
3
+ local error = require 'mc.error'
4
+ local create_error = error.create_error
5
+ local M = {}
6
+ % if 'RegistryPrefix' in root:
7
+ M.RegistryPrefix = '${root['RegistryPrefix']}'
8
+ % endif
9
+ % if 'RegistryVersion' in root:
10
+ M.RegistryVersion = '${root['RegistryVersion']}'
11
+ % endif
12
+ % for name, err in root['Messages'].items():
13
+ <% params = render_utils.params(err['Message'])%>
14
+ M.${name}Message = {
15
+ Original = ${utils_py.format_value(err, '')},
16
+ Name = "${name}",
17
+ Format = ${utils_py.format_value(render_utils.format(err['Message']), '')},
18
+ BacktraceLevel = ${render_utils.get_backtrace_level(root, err)},
19
+ Severity = ${render_utils.get_severity_err(err)},
20
+ HttpResponse = ${render_utils.get_http_response(root, err)},
21
+ IpmiResponse = ${render_utils.get_ipmi_response(err)},
22
+ % if 'RegistryPrefix' in root:
23
+ RegistryPrefix = '${root['RegistryPrefix']}'
24
+ % endif
25
+ }
26
+ ---@return Error
27
+ function M.${name}(${params})
28
+ return create_error(M.${name}Message${render_utils.error_params(err)})
29
+ end
30
+
31
+ % endfor
32
+ return M
@@ -0,0 +1,170 @@
1
+ ---
2
+ Language: Cpp
3
+ # BasedOnStyle: Google
4
+ AccessModifierOffset: -4
5
+ AlignAfterOpenBracket: Align
6
+ AlignConsecutiveMacros: true
7
+ AlignConsecutiveAssignments: true
8
+ AlignConsecutiveDeclarations: true
9
+ AlignEscapedNewlines: Left
10
+ AlignOperands: true
11
+ AlignTrailingComments: true
12
+ AllowAllArgumentsOnNextLine: true
13
+ AllowAllConstructorInitializersOnNextLine: true
14
+ AllowAllParametersOfDeclarationOnNextLine: true
15
+ AllowShortBlocksOnASingleLine: Never
16
+ AllowShortCaseLabelsOnASingleLine: false
17
+ AllowShortFunctionsOnASingleLine: None
18
+ AllowShortLambdasOnASingleLine: All
19
+ AllowShortIfStatementsOnASingleLine: WithoutElse
20
+ AllowShortLoopsOnASingleLine: true
21
+ AlwaysBreakAfterDefinitionReturnType: None
22
+ AlwaysBreakAfterReturnType: None
23
+ AlwaysBreakBeforeMultilineStrings: true
24
+ AlwaysBreakTemplateDeclarations: Yes
25
+ BinPackArguments: true
26
+ BinPackParameters: true
27
+ BraceWrapping:
28
+ AfterCaseLabel: false
29
+ AfterClass: false
30
+ AfterControlStatement: false
31
+ AfterEnum: false
32
+ AfterFunction: true
33
+ AfterNamespace: false
34
+ AfterObjCDeclaration: false
35
+ AfterStruct: false
36
+ AfterUnion: false
37
+ AfterExternBlock: false
38
+ BeforeCatch: false
39
+ BeforeElse: false
40
+ IndentBraces: false
41
+ SplitEmptyFunction: true
42
+ SplitEmptyRecord: true
43
+ SplitEmptyNamespace: true
44
+ BreakBeforeBinaryOperators: None
45
+ BreakBeforeBraces: Custom
46
+ BreakBeforeInheritanceComma: false
47
+ BreakInheritanceList: BeforeColon
48
+ BreakBeforeTernaryOperators: true
49
+ BreakConstructorInitializersBeforeComma: false
50
+ BreakConstructorInitializers: BeforeColon
51
+ BreakAfterJavaFieldAnnotations: false
52
+ BreakStringLiterals: true
53
+ ColumnLimit: 120
54
+ CommentPragmas: '^ IWYU pragma:'
55
+ CompactNamespaces: false
56
+ ConstructorInitializerAllOnOneLineOrOnePerLine: true
57
+ ConstructorInitializerIndentWidth: 4
58
+ ContinuationIndentWidth: 4
59
+ Cpp11BracedListStyle: true
60
+ DeriveLineEnding: true
61
+ DerivePointerAlignment: false
62
+ DisableFormat: false
63
+ ExperimentalAutoDetectBinPacking: false
64
+ FixNamespaceComments: true
65
+ ForEachMacros:
66
+ - foreach
67
+ - Q_FOREACH
68
+ - BOOST_FOREACH
69
+ IncludeBlocks: Regroup
70
+ IncludeCategories:
71
+ - Regex: '^<ext/.*\.h>'
72
+ Priority: 2
73
+ SortPriority: 0
74
+ - Regex: '^<.*\.h>'
75
+ Priority: 1
76
+ SortPriority: 0
77
+ - Regex: '^<.*'
78
+ Priority: 2
79
+ SortPriority: 0
80
+ - Regex: '.*'
81
+ Priority: 3
82
+ SortPriority: 0
83
+ IncludeIsMainRegex: '([-_](test|unittest))?$'
84
+ IncludeIsMainSourceRegex: ''
85
+ IndentCaseLabels: true
86
+ IndentGotoLabels: true
87
+ IndentPPDirectives: None
88
+ IndentWidth: 4
89
+ IndentWrappedFunctionNames: false
90
+ JavaScriptQuotes: Leave
91
+ JavaScriptWrapImports: true
92
+ KeepEmptyLinesAtTheStartOfBlocks: false
93
+ MacroBlockBegin: ''
94
+ MacroBlockEnd: ''
95
+ MaxEmptyLinesToKeep: 1
96
+ NamespaceIndentation: None
97
+ ObjCBinPackProtocolList: Never
98
+ ObjCBlockIndentWidth: 2
99
+ ObjCSpaceAfterProperty: false
100
+ ObjCSpaceBeforeProtocolList: true
101
+ PenaltyBreakAssignment: 2
102
+ PenaltyBreakBeforeFirstCallParameter: 1
103
+ PenaltyBreakComment: 300
104
+ PenaltyBreakFirstLessLess: 120
105
+ PenaltyBreakString: 1000
106
+ PenaltyBreakTemplateDeclaration: 10
107
+ PenaltyExcessCharacter: 1000000
108
+ PenaltyReturnTypeOnItsOwnLine: 200
109
+ PointerAlignment: Right
110
+ RawStringFormats:
111
+ - Language: Cpp
112
+ Delimiters:
113
+ - cc
114
+ - CC
115
+ - cpp
116
+ - Cpp
117
+ - CPP
118
+ - 'c++'
119
+ - 'C++'
120
+ CanonicalDelimiter: ''
121
+ BasedOnStyle: google
122
+ - Language: TextProto
123
+ Delimiters:
124
+ - pb
125
+ - PB
126
+ - proto
127
+ - PROTO
128
+ EnclosingFunctions:
129
+ - EqualsProto
130
+ - EquivToProto
131
+ - PARSE_PARTIAL_TEXT_PROTO
132
+ - PARSE_TEST_PROTO
133
+ - PARSE_TEXT_PROTO
134
+ - ParseTextOrDie
135
+ - ParseTextProtoOrDie
136
+ CanonicalDelimiter: ''
137
+ BasedOnStyle: google
138
+ ReflowComments: true
139
+ SortIncludes: false
140
+ SortUsingDeclarations: true
141
+ SpaceAfterCStyleCast: false
142
+ SpaceAfterLogicalNot: false
143
+ SpaceAfterTemplateKeyword: true
144
+ SpaceBeforeAssignmentOperators: true
145
+ SpaceBeforeCpp11BracedList: false
146
+ SpaceBeforeCtorInitializerColon: true
147
+ SpaceBeforeInheritanceColon: true
148
+ SpaceBeforeParens: ControlStatements
149
+ SpaceBeforeRangeBasedForLoopColon: true
150
+ SpaceInEmptyBlock: false
151
+ SpaceInEmptyParentheses: false
152
+ SpacesBeforeTrailingComments: 2
153
+ SpacesInAngles: false
154
+ SpacesInConditionalStatement: false
155
+ SpacesInContainerLiterals: true
156
+ SpacesInCStyleCastParentheses: false
157
+ SpacesInParentheses: false
158
+ SpacesInSquareBrackets: false
159
+ SpaceBeforeSquareBrackets: false
160
+ Standard: Auto
161
+ StatementMacros:
162
+ - Q_UNUSED
163
+ - QT_REQUIRE_VERSION
164
+ TabWidth: 4
165
+ UseCRLF: false
166
+ UseTab: Never
167
+ ---
168
+ Language: Proto
169
+ BasedOnStyle: Google
170
+ ---
@@ -0,0 +1,26 @@
1
+ .vscode/*
2
+ !.vscode/settings.json
3
+ !.vscode/launch.json
4
+
5
+ __pycache__
6
+ datamode/build
7
+ *.test_temp_data*
8
+ .dbus
9
+ *.test.db
10
+ .VSCodeCounter
11
+ datatocheck_bak.dat
12
+ datatocheck.dat
13
+ test_file
14
+ .pytest_cache
15
+ .idea
16
+ .source
17
+
18
+ crates
19
+ temp
20
+ .clang-format
21
+ .lua-format
22
+ .predefine
23
+ **/conan.lock
24
+ **/conanbase.py
25
+ CMakePresets.json
26
+ conan_toolchain.cmake
File without changes
@@ -0,0 +1,29 @@
1
+ cmake_minimum_required(VERSION 3.14)
2
+ <% dollar="$" %>
3
+ project(${project_name})
4
+ find_package(PkgConfig REQUIRED)
5
+ pkg_search_module(GLIB REQUIRED glib-2.0)
6
+ pkg_search_module(GMODULE REQUIRED gmodule-2.0)
7
+
8
+ set(TARGET_LIB ${dollar}{PROJECT_NAME})
9
+ set(BUILD_DIR temp)
10
+
11
+ include(${dollar}{CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
12
+ conan_basic_setup()
13
+
14
+ set(APP_INSTALL_DIR opt/bmc/apps/${dollar}{PROJECT_NAME})
15
+ set(LUACLIB_INSTALL_DIR ${dollar}{APP_INSTALL_DIR}/luaclib)
16
+
17
+ install(DIRECTORY src/lualib DESTINATION ${dollar}{APP_INSTALL_DIR} OPTIONAL)
18
+ install(DIRECTORY include/ DESTINATION opt/bmc/lualib OPTIONAL)
19
+ install(DIRECTORY src/service DESTINATION ${dollar}{APP_INSTALL_DIR} OPTIONAL)
20
+ if (NOT ${dollar}{CMAKE_BUILD_TYPE} STREQUAL Release)
21
+ install(DIRECTORY gen/debug/ DESTINATION ${dollar}{APP_INSTALL_DIR}/debug OPTIONAL)
22
+ install(DIRECTORY src/debug/lualib DESTINATION ${dollar}{APP_INSTALL_DIR} OPTIONAL)
23
+ endif()
24
+ install(DIRECTORY gen/${dollar}{PROJECT_NAME}/ DESTINATION ${dollar}{APP_INSTALL_DIR} OPTIONAL)
25
+ install(DIRECTORY gen/class DESTINATION ${dollar}{APP_INSTALL_DIR} OPTIONAL)
26
+ install(FILES mds/schema.json DESTINATION ${dollar}{APP_INSTALL_DIR}/mds OPTIONAL)
27
+ install(FILES mds/service.json DESTINATION ${dollar}{APP_INSTALL_DIR}/mds OPTIONAL)
28
+ install(DIRECTORY user_conf/rootfs/ DESTINATION . USE_SOURCE_PERMISSIONS OPTIONAL)
29
+ install(FILES config.cfg DESTINATION ${dollar}{APP_INSTALL_DIR} OPTIONAL)
@@ -0,0 +1,25 @@
1
+ .PHONY: gen
2
+ <% dollar="$" %>
3
+ <% slash="\\" %>
4
+ PWD = ${dollar}(shell pwd)
5
+ PROTO_DIR=${dollar}{PWD}/proto
6
+ GENERATE_OUT_DIR=${dollar}{PWD}/gen
7
+ export ROOT_DIR = ${dollar}(PWD)/temp
8
+ export PROJECT_DIR = ${dollar}{PWD}
9
+ export LD_LIBRARY_PATH = ${dollar}{ROOT_DIR}/lib:${dollar}{ROOT_DIR}/lib64:${dollar}{ROOT_DIR}/usr/lib:${dollar}{ROOT_DIR}/usr/lib64
10
+ export CONFIG_FILE = ${dollar}{ROOT_DIR}/opt/bmc/libmc/config.cfg
11
+
12
+ LUA = ${dollar}(ROOT_DIR)/opt/bmc/skynet/lua
13
+ SKYNET = ${dollar}(ROOT_DIR)/opt/bmc/skynet/skynet
14
+
15
+ empty :=
16
+ space := ${dollar}(empty) ${dollar}(empty)
17
+
18
+ gen:
19
+ @cd ${dollar}{TPL_DIR} && make ${slash}
20
+ PROTO_DIR=${dollar}{PROTO_DIR} ${slash}
21
+ BUILD_DIR=${dollar}{TPL_DIR}/temp ${slash}
22
+ GENERATE_OUT_DIR=${dollar}{GENERATE_OUT_DIR} ${slash}
23
+ PROTO_OUT_DIR=${dollar}{TPL_DIR}/temp/${dollar}{PROJECT_NAME} ${slash}
24
+ PROJECT_NAME=${dollar}{PROJECT_NAME} ${slash}
25
+ gen
File without changes
@@ -0,0 +1,7 @@
1
+ from conanbase import ConanBase
2
+
3
+
4
+ class AppConan(ConanBase):
5
+
6
+ def package_info(self):
7
+ pass
@@ -0,0 +1,6 @@
1
+ include "/opt/bmc/libmc/config.cfg"
2
+
3
+ config:set_root("/")
4
+ config:set_start("${project_name}/service/main")
5
+ config:include_app("${project_name}")
6
+ config:done()
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "${project_name}",
3
+ "type": "application",
4
+ "deployConfig": "",
5
+ "version": "0.0.1",
6
+ "license": "",
7
+ "description": "",
8
+ "dependencies": {
9
+ "test": [
10
+ ],
11
+ "build": [
12
+ {
13
+ "conan": "libmc4lua/[>=0.0.1]"
14
+ },
15
+ {
16
+ "conan": "mdb_interface/[>=0.0.1]"
17
+ }
18
+ ]
19
+ },
20
+ "required": []
21
+ }