diff options
Diffstat (limited to 'sandpit/test_yaml.go')
-rw-r--r-- | sandpit/test_yaml.go | 88 |
1 files changed, 54 insertions, 34 deletions
diff --git a/sandpit/test_yaml.go b/sandpit/test_yaml.go index bd90e01..d2b5f58 100644 --- a/sandpit/test_yaml.go +++ b/sandpit/test_yaml.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/go-yaml/yaml" "log" + "strings" ) type STag struct { @@ -31,18 +32,25 @@ type SCORSHcfg struct { var msg_str = ` s_msg: - - s_tag: BUILD - s_args: - - suites/jessie - - suites/ascii - - s_tag: REMOVE - s_args: - - file1 - - s_tag: CUSTOM + [ + { s_tag: BUILD, + s_args: [ suites/jessie, suites/ascii] + }, + { + s_tag: REMOVE, + s_args: [file1] + }, + { + s_tag: CUSTOM, s_args: [first, second, third] + } +] ` var other_msg = ` +this is my comment... + +--- s_msg: [ {s_tag: "BUILD", s_args: [suites/jessie, suites/ascii]}, {s_tag: "REMOVE", s_args: [file1]}, @@ -50,8 +58,9 @@ s_msg: [ ] ` - var cfg_str = ` +some stuff +--- s_cfg: - s_tag: BUILD s_commands: @@ -69,6 +78,7 @@ s_cfg: {s_cmd: "file:///home/user/script/sh", s_hash: "1234567890abcdef"}, {s_cmd: "http://my.server.net/submit.php", s_hash: "0987654321abce"} ] +... ` func main() { @@ -77,42 +87,52 @@ func main() { var conf SCORSHcfg + sep := "\n---\n" + //log.Printf("%s\n", test_str) - err := yaml.Unmarshal([]byte(other_msg), &c) - if err != nil { - log.Fatal("error: ", err) - } + scorsh_idx := strings.Index(other_msg, sep) + if scorsh_idx >= 0 { - for _, item := range c.S_msg { - fmt.Printf("Record: \n") - fmt.Printf(" s_tag: %s\n", item.S_tag) - fmt.Printf(" s_args:\n") + err := yaml.Unmarshal([]byte(other_msg[scorsh_idx:]), &c) - for _, a := range item.S_args { - fmt.Printf(" %s\n", a) + if err != nil { + log.Fatal("error: ", err) } - } - fmt.Println("----------------------------") + for _, item := range c.S_msg { + fmt.Printf("Record: \n") + fmt.Printf(" s_tag: %s\n", item.S_tag) + fmt.Printf(" s_args:\n") - err = yaml.Unmarshal([]byte(cfg_str), &conf) - if err != nil { - log.Fatal("error: ", err) + for _, a := range item.S_args { + fmt.Printf(" %s\n", a) + } + } } - for _, cfg_item := range conf.S_cfg { - fmt.Printf("Config record:\n") - fmt.Printf(" s_tag: %s\n", cfg_item.S_tag) - fmt.Printf(" s_commands:\n") + fmt.Println("----------------------------") - for _, c := range cfg_item.S_commands { - fmt.Printf(" s_cmd: %s\n", c.S_cmd) - fmt.Printf(" s_hash: %s\n", c.S_hash) - fmt.Println(" ---") + scorsh_idx = strings.Index(cfg_str, sep) + if scorsh_idx >= 0 { + + err := yaml.Unmarshal([]byte(cfg_str[scorsh_idx:]), &conf) + if err != nil { + log.Fatal("error: ", err) } - fmt.Println("-+-+-") - } + for _, cfg_item := range conf.S_cfg { + fmt.Printf("Config record:\n") + fmt.Printf(" s_tag: %s\n", cfg_item.S_tag) + fmt.Printf(" s_commands:\n") + for _, c := range cfg_item.S_commands { + fmt.Printf(" s_cmd: %s\n", c.S_cmd) + fmt.Printf(" s_hash: %s\n", c.S_hash) + fmt.Println(" ---") + } + fmt.Println("-+-+-") + + } + } } |