MCPcopy Create free account
hub / github.com/OpenAtomFoundation/SmartIDE / getTemplateSetting

Function getTemplateSetting

cli/cmd/init/local.go:151–281  ·  view source on GitHub ↗

从command的参数中获取模板设置信息

(cmd *cobra.Command, args []string)

Source from the content-addressed store, hash-verified

149
150// 从command的参数中获取模板设置信息
151func getTemplateSetting(cmd *cobra.Command, args []string) (*TemplateTypeBo, error) {
152 common.SmartIDELog.Info(i18nInstance.New.Info_loading_templates)
153 // git clone
154 err := templatesClone() //
155 if err != nil {
156 return nil, err
157 }
158
159 templateTypes, err := LoadTemplatesJson() // 解析json文件
160 if err != nil {
161 return nil, err
162 }
163 selectedTemplateTypeName := ""
164
165 selectedTemplateSubTypeName := ""
166 if len(args) > 0 {
167 argsTemplateTypeName := ""
168 argsTemplateSubTypeName := ""
169 common.SmartIDELog.Info(i18nInstance.Init.Info_check_cmdtemplate)
170 if cmd.Name() == "init" && len(cmd.Flags().Args()) == 1 {
171 argsTemplateTypeName = args[0]
172 }
173 if cmd.Name() == "start" && len(cmd.Flags().Args()) == 2 {
174 argsTemplateTypeName = args[1]
175 }
176 if cmd.Name() == "start" && len(cmd.Flags().Args()) == 1 {
177 argsTemplateTypeName = args[0]
178 }
179 argsTemplateSubTypeName, err = cmd.Flags().GetString("type")
180 if err != nil {
181 return nil, err
182 }
183 for _, currentTemplateType := range templateTypes {
184 if currentTemplateType.TypeName == argsTemplateTypeName {
185 selectedTemplateTypeName = argsTemplateTypeName
186 }
187 for _, currentTemplateTypeSubType := range currentTemplateType.SubTypes {
188 if currentTemplateTypeSubType.Name == argsTemplateSubTypeName {
189 selectedTemplateSubTypeName = currentTemplateTypeSubType.Name
190 }
191 }
192 }
193 if selectedTemplateTypeName == "" || selectedTemplateSubTypeName == "" {
194 common.SmartIDELog.Info(i18nInstance.Init.Info_noexist_cmdtemplate)
195 }
196 }
197
198 if len(args) == 0 || selectedTemplateTypeName == "" || selectedTemplateSubTypeName == "" {
199 // print
200 fmt.Println(i18nInstance.Init.Info_available_templates)
201 PrintTemplates(templateTypes) // 打印支持的模版列表
202
203 fmt.Print(i18nInstance.Init.Info_choose_templatetype)
204
205 var indexChar string
206 fmt.Scanln(&indexChar)
207 index, err := strconv.Atoi(indexChar)
208 if err != nil {

Callers 2

VmInitFunction · 0.85
InitLocalConfigFunction · 0.85

Calls 4

LoadTemplatesJsonFunction · 0.85
PrintTemplatesFunction · 0.85
InfoMethod · 0.80
templatesCloneFunction · 0.70

Tested by

no test coverage detected