methods rewritten
This commit is contained in:
parent
e4fe6f4758
commit
83d9f183d1
|
@ -4,25 +4,35 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
"errors"
|
"errors"
|
||||||
|
"gopkg.in/urfave/cli.v2"
|
||||||
|
"path/filepath"
|
||||||
|
"io/ioutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
File string `yaml:"app_file,omitempty"`
|
file string `yaml:"app_file,omitempty"`
|
||||||
Main []string `yaml:"app_main,omitempty"`
|
Version string `yaml:"version,omitempty"`
|
||||||
Version string `yaml:"app_version,omitempty"`
|
Projects []Project
|
||||||
Build bool `yaml:"app_build,omitempty"`
|
|
||||||
Watchers
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Watchers struct{
|
type Project struct {
|
||||||
Before []string `yaml:"app_before,omitempty"`
|
Run bool `yaml:"app_run,omitempty"`
|
||||||
After []string `yaml:"app_after,omitempty"`
|
Build bool `yaml:"app_build,omitempty"`
|
||||||
Paths []string `yaml:"app_paths,omitempty"`
|
Main string `yaml:"app_main,omitempty"`
|
||||||
Ext []string `yaml:"app_ext,omitempty"`
|
Watcher Watcher `yaml:"app_watcher,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Watcher struct{
|
||||||
|
Before []string `yaml:"before,omitempty"`
|
||||||
|
After []string `yaml:"after,omitempty"`
|
||||||
|
Paths []string `yaml:"paths,omitempty"`
|
||||||
|
Exts []string `yaml:"exts,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
var file = "realize.config.yaml"
|
||||||
|
|
||||||
// Check files exists
|
// Check files exists
|
||||||
func Check(files ...string) (result []bool, err error){
|
func Check(files ...string) (result []bool){
|
||||||
for _, val := range files {
|
for _, val := range files {
|
||||||
if _, err := os.Stat(val); err == nil {
|
if _, err := os.Stat(val); err == nil {
|
||||||
result = append(result,true)
|
result = append(result,true)
|
||||||
|
@ -33,41 +43,63 @@ func Check(files ...string) (result []bool, err error){
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default value
|
// Default value
|
||||||
func Init() Config{
|
func (h *Config) Init(params *cli.Context) {
|
||||||
config := Config{
|
h.file = file
|
||||||
File:"realize.config.yaml",
|
h.Version = "1.0"
|
||||||
Main:[]string{"main.go"},
|
h.Projects = []Project{
|
||||||
Version:"1.0",
|
{
|
||||||
Build: true,
|
Main: params.String("main"),
|
||||||
Watchers: Watchers{
|
Run: params.Bool("run"),
|
||||||
|
Build: params.Bool("build"),
|
||||||
|
Watcher: Watcher{
|
||||||
Paths: []string{"/"},
|
Paths: []string{"/"},
|
||||||
Ext: []string{"go"},
|
Exts: []string{"go"},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return config
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create config yaml file
|
|
||||||
func (h *Config) Create() (result bool, err error){
|
|
||||||
config, err := Check(h.File)
|
|
||||||
if config[0] == false {
|
|
||||||
if w, err := os.Create(h.File); err == nil {
|
|
||||||
defer w.Close()
|
|
||||||
y, err := yaml.Marshal(h)
|
|
||||||
_, err = w.WriteString(string(y))
|
|
||||||
if err != nil {
|
|
||||||
os.Remove(h.File)
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
return true, nil
|
|
||||||
}
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
return false, errors.New("already exist")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read config file
|
// Read config file
|
||||||
func (h *Config) Read(field string) bool {
|
func (h *Config) Read() error{
|
||||||
return true
|
if filename, err := filepath.Abs("./"+file); err == nil{
|
||||||
|
y, err := ioutil.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return yaml.Unmarshal(y, &h)
|
||||||
|
}else{
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create config yaml file
|
||||||
|
func (h *Config) Create() error{
|
||||||
|
config := Check(h.file)
|
||||||
|
if config[0] == false {
|
||||||
|
if w, err := os.Create(h.file); err == nil {
|
||||||
|
y, err := yaml.Marshal(h)
|
||||||
|
if err != nil {
|
||||||
|
os.Remove(h.file)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = w.WriteString(string(y))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return errors.New("There is a problem with the file's creation")
|
||||||
|
}
|
||||||
|
return errors.New("The configuration file already exist")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add another project
|
||||||
|
func (h *Config) Add(params *cli.Context) {
|
||||||
|
//new := Project{
|
||||||
|
// Main: params.String("main"),
|
||||||
|
// Run: params.Bool("run"),
|
||||||
|
// Build: params.Bool("build"),
|
||||||
|
// Watcher: Watcher{
|
||||||
|
// Paths: []string{"/"},
|
||||||
|
// Exts: []string{"go"},
|
||||||
|
// },
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue