提交 5da77b3b 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

config before first run

上级 9255f70c
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
{ {
"id": "need_config", "id": "need_config",
"translation": "You need to config Zentao site before checkout, type 'exit' to quit." "translation": "You need to config Zentao connection before checkout, type 'exit' to quit."
}, },
{ {
"id": "begin_config", "id": "begin_config",
......
...@@ -3,6 +3,7 @@ package action ...@@ -3,6 +3,7 @@ package action
import ( import (
"github.com/easysoft/zentaoatf/src/service/script" "github.com/easysoft/zentaoatf/src/service/script"
"github.com/easysoft/zentaoatf/src/service/zentao" "github.com/easysoft/zentaoatf/src/service/zentao"
configUtils "github.com/easysoft/zentaoatf/src/utils/config"
"github.com/easysoft/zentaoatf/src/utils/const" "github.com/easysoft/zentaoatf/src/utils/const"
"github.com/easysoft/zentaoatf/src/utils/i118" "github.com/easysoft/zentaoatf/src/utils/i118"
"github.com/easysoft/zentaoatf/src/utils/lang" "github.com/easysoft/zentaoatf/src/utils/lang"
...@@ -14,7 +15,7 @@ import ( ...@@ -14,7 +15,7 @@ import (
func Generate(productId string, moduleId string, suiteId string, taskId string, func Generate(productId string, moduleId string, suiteId string, taskId string,
independentFile bool, scriptLang string) { independentFile bool, scriptLang string) {
CheckRequestConfig() configUtils.CheckRequestConfig()
if ((productId != "") || (moduleId != "" && productId != "") || suiteId != "" || taskId != "") && scriptLang != "" { if ((productId != "") || (moduleId != "" && productId != "") || suiteId != "" || taskId != "") && scriptLang != "" {
......
...@@ -6,6 +6,7 @@ import ( ...@@ -6,6 +6,7 @@ import (
testingService "github.com/easysoft/zentaoatf/src/service/testing" testingService "github.com/easysoft/zentaoatf/src/service/testing"
zentaoService "github.com/easysoft/zentaoatf/src/service/zentao" zentaoService "github.com/easysoft/zentaoatf/src/service/zentao"
"github.com/easysoft/zentaoatf/src/utils/common" "github.com/easysoft/zentaoatf/src/utils/common"
configUtils "github.com/easysoft/zentaoatf/src/utils/config"
constant "github.com/easysoft/zentaoatf/src/utils/const" constant "github.com/easysoft/zentaoatf/src/utils/const"
fileUtils "github.com/easysoft/zentaoatf/src/utils/file" fileUtils "github.com/easysoft/zentaoatf/src/utils/file"
i118Utils "github.com/easysoft/zentaoatf/src/utils/i118" i118Utils "github.com/easysoft/zentaoatf/src/utils/i118"
...@@ -68,7 +69,7 @@ func getCaseByTaskId(id string, dir string) []string { ...@@ -68,7 +69,7 @@ func getCaseByTaskId(id string, dir string) []string {
taskId, err := strconv.Atoi(id) taskId, err := strconv.Atoi(id)
if err == nil && taskId > 0 { if err == nil && taskId > 0 {
CheckRequestConfig() configUtils.CheckRequestConfig()
zentaoService.GetCaseIdsByTask(id, &caseIdMap) zentaoService.GetCaseIdsByTask(id, &caseIdMap)
} }
...@@ -82,7 +83,7 @@ func getCaseBySuiteId(id string, dir string) []string { ...@@ -82,7 +83,7 @@ func getCaseBySuiteId(id string, dir string) []string {
suiteId, err := strconv.Atoi(id) suiteId, err := strconv.Atoi(id)
if err == nil && suiteId > 0 { if err == nil && suiteId > 0 {
CheckRequestConfig() configUtils.CheckRequestConfig()
zentaoService.GetCaseIdsBySuite(id, &caseIdMap) zentaoService.GetCaseIdsBySuite(id, &caseIdMap)
} }
......
package action package action
import ( import (
"fmt"
configUtils "github.com/easysoft/zentaoatf/src/utils/config" configUtils "github.com/easysoft/zentaoatf/src/utils/config"
i118Utils "github.com/easysoft/zentaoatf/src/utils/i118"
stdinUtils "github.com/easysoft/zentaoatf/src/utils/stdin"
) )
func InputForSet() { func Set() {
conf := configUtils.ReadCurrConfig() configUtils.InputForSet()
var configSite bool
language := ""
url := ""
account := ""
password := ""
fmt.Println(i118Utils.I118Prt.Sprintf("begin_config"))
enCheck := ""
var numb string
if conf.Language == "en" {
enCheck = "*"
numb = "1"
}
zhCheck := ""
if conf.Language == "zh" {
zhCheck = "*"
numb = "2"
}
numbSelected := stdinUtils.GetInput("(1|2)", numb, "enter_language", enCheck, zhCheck)
if numbSelected == "1" {
language = "en"
} else {
language = "zh"
}
stdinUtils.InputForBool(&configSite, true, "config_zentao_site")
if configSite {
url = stdinUtils.GetInput("(http://.*)", conf.Url, "enter_url", conf.Url)
account = stdinUtils.GetInput("(.{2,})", conf.Account, "enter_account", conf.Account)
password = stdinUtils.GetInput("(.{2,})", conf.Password, "enter_password", conf.Password)
}
configUtils.SaveConfig(language, url, account, password)
configUtils.PrintCurrConfig()
}
func CheckRequestConfig() {
conf := configUtils.ReadCurrConfig()
if conf.Url == "" || conf.Account == "" || conf.Password == "" {
InputForRequest()
}
}
func InputForRequest() {
conf := configUtils.ReadCurrConfig()
url := ""
account := ""
password := ""
fmt.Println(i118Utils.I118Prt.Sprintf("begin_config"))
url = stdinUtils.GetInput("(http://.*)", conf.Url, "enter_url", conf.Url)
account = stdinUtils.GetInput("(.{2,})", conf.Account, "enter_account", conf.Account)
password = stdinUtils.GetInput("(.{2,})", conf.Password, "enter_password", conf.Password)
configUtils.SaveConfig("", url, account, password)
} }
...@@ -2,10 +2,23 @@ package main ...@@ -2,10 +2,23 @@ package main
import ( import (
"fmt" "fmt"
commonUtils "github.com/easysoft/zentaoatf/src/utils/common" "os"
"path/filepath"
"strings"
) )
func main() { func main() {
osName := commonUtils.GetOs()
fmt.Println(osName) var dir string
arg1 := os.Args[0]
if strings.Index(arg1, "build") > -1 {
dir, _ = os.Getwd()
} else {
dir, _ = filepath.Abs(filepath.Dir(os.Args[0]))
}
fmt.Println(dir)
} }
...@@ -147,3 +147,16 @@ func IngoreFile(path string) bool { ...@@ -147,3 +147,16 @@ func IngoreFile(path string) bool {
return false return false
} }
} }
func GetZtfDir() string {
var dir string
arg1 := os.Args[0]
if strings.Index(arg1, "build") > -1 {
dir, _ = os.Getwd()
} else {
dir, _ = filepath.Abs(filepath.Dir(os.Args[0]))
}
return dir
}
...@@ -9,12 +9,12 @@ import ( ...@@ -9,12 +9,12 @@ import (
fileUtils "github.com/easysoft/zentaoatf/src/utils/file" fileUtils "github.com/easysoft/zentaoatf/src/utils/file"
"github.com/easysoft/zentaoatf/src/utils/i118" "github.com/easysoft/zentaoatf/src/utils/i118"
logUtils "github.com/easysoft/zentaoatf/src/utils/log" logUtils "github.com/easysoft/zentaoatf/src/utils/log"
stdinUtils "github.com/easysoft/zentaoatf/src/utils/stdin"
"github.com/easysoft/zentaoatf/src/utils/vari" "github.com/easysoft/zentaoatf/src/utils/vari"
"github.com/fatih/color" "github.com/fatih/color"
"gopkg.in/yaml.v2" "gopkg.in/yaml.v2"
"io/ioutil" "io/ioutil"
"reflect" "reflect"
"sync"
) )
func InitConfig() { func InitConfig() {
...@@ -26,7 +26,6 @@ func InitConfig() { ...@@ -26,7 +26,6 @@ func InitConfig() {
// internationalization // internationalization
i118Utils.InitI118(vari.Config.Language) i118Utils.InitI118(vari.Config.Language)
} }
func InitScreenSize() { func InitScreenSize() {
...@@ -35,28 +34,6 @@ func InitScreenSize() { ...@@ -35,28 +34,6 @@ func InitScreenSize() {
vari.ScreenHeight = h vari.ScreenHeight = h
} }
func getInst() model.Config {
var once sync.Once
once.Do(func() {
vari.Config = model.Config{}
if fileUtils.FileExist(constant.ConfigFile) {
buf, _ := ioutil.ReadFile(constant.ConfigFile)
yaml.Unmarshal(buf, &vari.Config)
if vari.Config.Version != constant.ConfigVer { // init
if vari.Config.Language != "en" && vari.Config.Language != "zh" {
vari.Config.Language = "en"
}
SaveConfig(vari.Config.Language, vari.Config.Url, vari.Config.Account, vari.Config.Password)
}
} else { // init
vari.Config = saveEmptyConfig()
}
})
return vari.Config
}
func SaveConfig(language string, url string, account string, password string) error { func SaveConfig(language string, url string, account string, password string) error {
config := ReadCurrConfig() config := ReadCurrConfig()
...@@ -99,22 +76,119 @@ func ReadCurrConfig() model.Config { ...@@ -99,22 +76,119 @@ func ReadCurrConfig() model.Config {
configPath := constant.ConfigFile configPath := constant.ConfigFile
var config model.Config var config model.Config
if !fileUtils.FileExist(configPath) {
saveEmptyConfig()
}
buf, _ := ioutil.ReadFile(configPath) buf, _ := ioutil.ReadFile(configPath)
yaml.Unmarshal(buf, &config) yaml.Unmarshal(buf, &config)
if config.Language == "" {
config.Language = "en"
i118Utils.InitI118("en")
}
config.Url = commonUtils.UpdateUrl(config.Url) config.Url = commonUtils.UpdateUrl(config.Url)
if vari.Config.Version != constant.ConfigVer { // old config file, re-init
if vari.Config.Language != "en" && vari.Config.Language != "zh" {
vari.Config.Language = "en"
}
SaveConfig(vari.Config.Language, vari.Config.Url, vari.Config.Account, vari.Config.Password)
}
return config return config
} }
func saveEmptyConfig() model.Config { func getInst() model.Config {
config := model.Config{Version: constant.ConfigVer, Language: "en", Url: "", Account: "", Password: ""} CheckConfig()
vari.Config = model.Config{}
data, _ := yaml.Marshal(&config) buf, _ := ioutil.ReadFile(constant.ConfigFile)
ioutil.WriteFile(constant.ConfigFile, data, 0666) yaml.Unmarshal(buf, &vari.Config)
return config if vari.Config.Version != constant.ConfigVer { // old config file, re-init
if vari.Config.Language != "en" && vari.Config.Language != "zh" {
vari.Config.Language = "en"
}
SaveConfig(vari.Config.Language, vari.Config.Url, vari.Config.Account, vari.Config.Password)
}
return vari.Config
}
func CheckConfig() {
configPath := constant.ConfigFile
if !fileUtils.FileExist(configPath) {
InputForSet()
}
}
func InputForSet() {
conf := ReadCurrConfig()
var configSite bool
language := ""
url := ""
account := ""
password := ""
logUtils.PrintToStdOut(i118Utils.I118Prt.Sprintf("begin_config"), color.FgCyan)
enCheck := ""
var numb string
if conf.Language == "en" {
enCheck = "*"
numb = "1"
}
zhCheck := ""
if conf.Language == "zh" {
zhCheck = "*"
numb = "2"
}
numbSelected := stdinUtils.GetInput("(1|2)", numb, "enter_language", enCheck, zhCheck)
if numbSelected == "1" {
language = "en"
} else {
language = "zh"
}
stdinUtils.InputForBool(&configSite, true, "config_zentao_site")
if configSite {
url = stdinUtils.GetInput("(http://.*)", conf.Url, "enter_url", conf.Url)
account = stdinUtils.GetInput("(.{2,})", conf.Account, "enter_account", conf.Account)
password = stdinUtils.GetInput("(.{2,})", conf.Password, "enter_password", conf.Password)
}
SaveConfig(language, url, account, password)
PrintCurrConfig()
}
func CheckRequestConfig() {
conf := ReadCurrConfig()
if conf.Url == "" || conf.Account == "" || conf.Password == "" {
InputForRequest()
}
}
func InputForRequest() {
conf := ReadCurrConfig()
url := ""
account := ""
password := ""
logUtils.PrintToStdOut(i118Utils.I118Prt.Sprintf("need_config"), color.FgCyan)
url = stdinUtils.GetInput("(http://.*)", conf.Url, "enter_url", conf.Url)
account = stdinUtils.GetInput("(.{2,})", conf.Account, "enter_account", conf.Account)
password = stdinUtils.GetInput("(.{2,})", conf.Password, "enter_password", conf.Password)
SaveConfig("", url, account, password)
} }
...@@ -108,7 +108,7 @@ func main() { ...@@ -108,7 +108,7 @@ func main() {
} }
case "set", "-set": case "set", "-set":
action.InputForSet() action.Set()
case "help", "-h": case "help", "-h":
logUtils.PrintUsage() logUtils.PrintUsage()
...@@ -136,13 +136,6 @@ func run(args []string) { ...@@ -136,13 +136,6 @@ func run(args []string) {
} }
func init() { func init() {
if len(os.Args) > 1 { vari.RunFromCui = false
if os.Args[1] == "cui" {
vari.RunFromCui = true
} else {
vari.RunFromCui = false
}
}
configUtils.InitConfig() configUtils.InitConfig()
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册