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

Function GetWorkspaceFromCmd

cli/cmd/common/workspace.go:100–426  ·  view source on GitHub ↗

从start command的flag、args中获取workspace

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

Source from the content-addressed store, hash-verified

98
99// 从start command的flag、args中获取workspace
100func GetWorkspaceFromCmd(cmd *cobra.Command, args []string) (workspaceInfo workspace.WorkspaceInfo, err error) {
101 fflags := cmd.Flags()
102 //1.
103 // 从args或flags中获取workspaceid,如 : smartide start 1
104 workspaceIdStr := GetWorkspaceIdFromFlagsOrArgs(cmd, args)
105
106 // 加载workspace
107 workspaceInfo = workspace.WorkspaceInfo{
108 CliRunningEnv: workspace.CliRunningEnvEnum_Client,
109 CacheEnv: workspace.CacheEnvEnum_Local,
110 }
111 //1.1. 运行环境
112 if value, _ := fflags.GetString("mode"); value != "" {
113 if strings.ToLower(value) == "server" {
114 workspaceInfo.CliRunningEnv = workspace.CliRunningEvnEnum_Server
115 } else if strings.ToLower(value) == "pipeline" {
116 workspaceInfo.CliRunningEnv = workspace.CliRunningEvnEnum_Pipeline
117 }
118
119 }
120 if strings.Index(strings.ToLower(workspaceIdStr), "ws") == 1 {
121 workspaceInfo.CacheEnv = workspace.CacheEnvEnum_Server
122 } else if value, _ := fflags.GetString("serverworkspaceid"); value != "" {
123 workspaceInfo.CacheEnv = workspace.CacheEnvEnum_Server
124 }
125
126 //1.2. 涉及到配置文件的改变
127 if tmp, _ := fflags.GetString(flag_filepath); tmp != "" {
128 configFilePath, err := fflags.GetString(flag_filepath)
129 common.CheckError(err)
130
131 if configFilePath != "" {
132 if strings.Contains(configFilePath, "/") || strings.Contains(configFilePath, "\\") {
133 workspaceInfo.ConfigFileRelativePath = configFilePath
134 } else {
135 workspaceInfo.ConfigFileRelativePath = filepath.Join(".ide", configFilePath)
136 }
137
138 }
139 }
140 if workspaceInfo.ConfigFileRelativePath == "" { // 避免配置文件的路径为空
141 workspaceInfo.ConfigFileRelativePath = model.CONST_Default_ConfigRelativeFilePath
142 }
143 if tmp, _ := fflags.GetString(flag_branch); tmp != "" {
144 branch, err := fflags.GetString(flag_branch)
145 common.CheckError(err)
146
147 if branch != "" {
148 workspaceInfo.GitBranch = branch
149 }
150 }
151
152 //2. 获取基本的信息
153 //2.1. 存储在 server 的工作区
154 if workspaceInfo.CacheEnv == workspace.CacheEnvEnum_Server {
155 auth := model.Auth{}
156 if workspaceInfo.CliRunningEnv == workspace.CliRunningEvnEnum_Server {
157 auth.Token, _ = fflags.GetString(server.Flags_ServerToken)

Callers

nothing calls this directly

Calls 15

IsNotNilMethod · 0.95
CheckDailMethod · 0.95
getSeletedTemplateFunction · 0.85
loadGitInfo4WorkspaceFunction · 0.85
checkFlagUnnecessaryFunction · 0.85
getRemoteAndValidFunction · 0.85
InfoMethod · 0.80
WarningMethod · 0.80

Tested by

no test coverage detected