#156 fixed
This commit is contained in:
parent
14ea484ce2
commit
21ce614026
10
realize.go
10
realize.go
@ -795,7 +795,7 @@ func setup(c *cli.Context) (err error) {
|
|||||||
Resolve: func(d interact.Context) bool {
|
Resolve: func(d interact.Context) bool {
|
||||||
val, _ := d.Ans().Bool()
|
val, _ := d.Ans().Bool()
|
||||||
if val {
|
if val {
|
||||||
r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.Ignore = r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.Ignore[:len(r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.Ignore)-1]
|
r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.IgnoredPaths = r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.IgnoredPaths[:len(r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.IgnoredPaths)-1]
|
||||||
}
|
}
|
||||||
return val
|
return val
|
||||||
},
|
},
|
||||||
@ -815,7 +815,7 @@ func setup(c *cli.Context) (err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return d.Err()
|
return d.Err()
|
||||||
}
|
}
|
||||||
r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.Ignore = append(r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.Ignore, val)
|
r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.IgnoredPaths = append(r.Schema.Projects[len(r.Schema.Projects)-1].Watcher.IgnoredPaths, val)
|
||||||
d.Reload()
|
d.Reload()
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
@ -1128,7 +1128,10 @@ func start(c *cli.Context) (err error) {
|
|||||||
// check no-config and read
|
// check no-config and read
|
||||||
if !c.Bool("no-config") {
|
if !c.Bool("no-config") {
|
||||||
// read a config if exist
|
// read a config if exist
|
||||||
r.Settings.Read(&r)
|
err := r.Settings.Read(&r)
|
||||||
|
if err != nil{
|
||||||
|
return err
|
||||||
|
}
|
||||||
if c.String("name") != "" {
|
if c.String("name") != "" {
|
||||||
// filter by name flag if exist
|
// filter by name flag if exist
|
||||||
r.Schema.Projects = r.Schema.Filter("Name", c.String("name"))
|
r.Schema.Projects = r.Schema.Filter("Name", c.String("name"))
|
||||||
@ -1143,6 +1146,7 @@ func start(c *cli.Context) (err error) {
|
|||||||
}
|
}
|
||||||
// check project list length
|
// check project list length
|
||||||
if len(r.Schema.Projects) <= 0 {
|
if len(r.Schema.Projects) <= 0 {
|
||||||
|
println("len",r.Schema.Projects)
|
||||||
// create a new project based on given params
|
// create a new project based on given params
|
||||||
project := r.Schema.New(c)
|
project := r.Schema.New(c)
|
||||||
// Add to projects list
|
// Add to projects list
|
||||||
|
@ -28,7 +28,8 @@ var (
|
|||||||
type Watch struct {
|
type Watch struct {
|
||||||
Paths []string `yaml:"paths" json:"paths"`
|
Paths []string `yaml:"paths" json:"paths"`
|
||||||
Exts []string `yaml:"extensions" json:"extensions"`
|
Exts []string `yaml:"extensions" json:"extensions"`
|
||||||
Ignore []string `yaml:"ignored_paths,omitempty" json:"ignored_paths,omitempty"`
|
IgnoredExts []string `yaml:"ignored_extensions,omitempty" json:"ignored_extensions,omitempty"`
|
||||||
|
IgnoredPaths []string `yaml:"ignored_paths,omitempty" json:"ignored_paths,omitempty"`
|
||||||
Scripts []Command `yaml:"scripts,omitempty" json:"scripts,omitempty"`
|
Scripts []Command `yaml:"scripts,omitempty" json:"scripts,omitempty"`
|
||||||
Hidden bool `yaml:"skip_hidden,omitempty" json:"skip_hidden,omitempty"`
|
Hidden bool `yaml:"skip_hidden,omitempty" json:"skip_hidden,omitempty"`
|
||||||
}
|
}
|
||||||
@ -347,14 +348,24 @@ func (p *Project) Validate(path string, fcheck bool) bool {
|
|||||||
}
|
}
|
||||||
// check for a valid ext or path
|
// check for a valid ext or path
|
||||||
if e := ext(path); e != "" {
|
if e := ext(path); e != "" {
|
||||||
// supported exts
|
for _, v := range p.Watcher.IgnoredExts {
|
||||||
if !array(e, p.Watcher.Exts) {
|
if v == e {
|
||||||
return false
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// supported extensions
|
||||||
|
for index, v := range p.Watcher.Exts{
|
||||||
|
if e == v {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if index == len(p.Watcher.Exts)-1{
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
separator := string(os.PathSeparator)
|
separator := string(os.PathSeparator)
|
||||||
// supported paths
|
// supported paths
|
||||||
for _, v := range p.Watcher.Ignore {
|
for _, v := range p.Watcher.IgnoredPaths {
|
||||||
s := append([]string{p.Path}, strings.Split(v, separator)...)
|
s := append([]string{p.Path}, strings.Split(v, separator)...)
|
||||||
abs, _ := filepath.Abs(filepath.Join(s...))
|
abs, _ := filepath.Abs(filepath.Join(s...))
|
||||||
if path == abs || strings.HasPrefix(path, abs+separator) {
|
if path == abs || strings.HasPrefix(path, abs+separator) {
|
||||||
|
@ -128,7 +128,8 @@ func TestProject_Validate(t *testing.T) {
|
|||||||
r.Projects = append(r.Projects, Project{
|
r.Projects = append(r.Projects, Project{
|
||||||
parent: &r,
|
parent: &r,
|
||||||
Watcher: Watch{
|
Watcher: Watch{
|
||||||
Ignore: []string{"/test/ignore"},
|
Exts: []string{"go","html"},
|
||||||
|
IgnoredPaths: []string{"/test/ignore"},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
for i, v := range data {
|
for i, v := range data {
|
||||||
|
@ -68,7 +68,7 @@ func (s *Schema) New(c *cli.Context) Project {
|
|||||||
Args: params(c),
|
Args: params(c),
|
||||||
Watcher: Watch{
|
Watcher: Watch{
|
||||||
Paths: []string{"/"},
|
Paths: []string{"/"},
|
||||||
Ignore: []string{".git", ".realize", "vendor"},
|
IgnoredPaths: []string{".git", ".realize", "vendor"},
|
||||||
Exts: []string{"go"},
|
Exts: []string{"go"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -8,16 +8,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Array check if a string is in given array
|
|
||||||
func array(str string, list []string) bool {
|
|
||||||
for _, v := range list {
|
|
||||||
if v == str {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// Params parse one by one the given argumentes
|
// Params parse one by one the given argumentes
|
||||||
func params(params *cli.Context) []string {
|
func params(params *cli.Context) []string {
|
||||||
argsN := params.NArg()
|
argsN := params.NArg()
|
||||||
|
@ -43,16 +43,6 @@ func TestDuplicates(t *testing.T) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestArray(t *testing.T) {
|
|
||||||
arr := []string{"a", "b", "c"}
|
|
||||||
if !array(arr[0], arr) {
|
|
||||||
t.Fatal("Unexpected", arr[0], "should be in", arr)
|
|
||||||
}
|
|
||||||
if array("d", arr) {
|
|
||||||
t.Fatal("Unexpected", "d", "shouldn't be in", arr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestWdir(t *testing.T) {
|
func TestWdir(t *testing.T) {
|
||||||
expected, err := os.Getwd()
|
expected, err := os.Getwd()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user