从start command的flag、args中获取workspace
(cmd *cobra.Command, args []string)
| 98 | |
| 99 | // 从start command的flag、args中获取workspace |
| 100 | func 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) |
nothing calls this directly
no test coverage detected