diff --git a/models/config.go b/models/config.go index 835e500..ed0ca7f 100644 --- a/models/config.go +++ b/models/config.go @@ -11,8 +11,8 @@ import ( ) type Yaml struct { - Containers []Container - Tasks []Task + Containers []Container + // Tasks []Task Qrcode string Master string Mode string @@ -37,6 +37,7 @@ type Yaml struct { Pip string NoAdmin bool `yaml:"no_admin"` QbotConfigFile string `yaml:"qbot_config_file"` + Repos []Repo } var Balance = "balance" @@ -103,4 +104,5 @@ func initConfig() { if Config.Pip == "" { Config.Pip = "Pip3" } + } diff --git a/models/init.go b/models/init.go index 3e1ceac..657f569 100644 --- a/models/init.go +++ b/models/init.go @@ -26,4 +26,5 @@ func init() { go initTgBot() InitReplies() initTask() + initRepos() } diff --git a/models/repos.go b/models/repos.go new file mode 100644 index 0000000..45ad201 --- /dev/null +++ b/models/repos.go @@ -0,0 +1,33 @@ +package models + +import ( + "fmt" + "os" + "os/exec" + "strings" +) + +type Repo struct { + Git string + filename string +} + +func (rp *Repo) init() { + rp.filename = strings.Replace(strings.Replace(rp.Git, "https://", "", -1), "/", "_", -1) +} + +func initRepos() { + for _, repo := range Config.Repos { + repo.init() + if _, err := os.Stat(ExecPath + "/" + repo.filename); err != nil { + repo.gitClone() + } + } +} + +func (rp *Repo) gitClone() { + cmd := exec.Command("git", "clone", rp.Git, rp.filename) + cmd.Path = ExecPath + "/repos" + fmt.Println(cmd.Path) + fmt.Println(cmd.Start()) +} diff --git a/models/task.go b/models/task.go index f3e141d..b9965c5 100644 --- a/models/task.go +++ b/models/task.go @@ -34,11 +34,11 @@ type Env struct { } func initTask() { - for i := range Config.Tasks { - if Config.Tasks[i].Cron != "" { - createTask(&Config.Tasks[i]) - } - } + // for i := range Config.Tasks { + // if Config.Tasks[i].Cron != "" { + // createTask(&Config.Tasks[i]) + // } + // } } func createTask(task *Task) {