diff options
Diffstat (limited to 'sandpit')
| -rw-r--r-- | sandpit/test_yaml.go | 102 | 
1 files changed, 102 insertions, 0 deletions
| diff --git a/sandpit/test_yaml.go b/sandpit/test_yaml.go new file mode 100644 index 0000000..ebe8758 --- /dev/null +++ b/sandpit/test_yaml.go @@ -0,0 +1,102 @@ +package main + +import ( +	"fmt" +	"github.com/go-yaml/yaml" +	"log" +) + +type STag struct { +	S_tag  string +	S_args []string +} + +type SCmd struct { +	S_cmd  string +	S_hash string +} + +type STagConfig struct { +	S_tag      string +	S_commands []SCmd +} + +type SCORSHmsg struct { +	S_msg []STag +} + +type SCORSHcfg struct { +	S_cfg []STagConfig +} + +var msg_str = ` +s_msg: +   - s_tag: BUILD +     s_args:  +      -   suites/jessie  +      -        suites/ascii +   - s_tag: REMOVE +     s_args:  +      - file1 +` + +var cfg_str = ` +s_cfg: +  - s_tag: BUILD +    s_commands: +     - s_cmd: file:///bin/ls +       s_hash: 12345 +     - s_cmd: file:///home/katolaz/script.sh +       s_hash: abc123df +     - s_cmd: http://myserver.org/build.php?name=\1 +       s_hash:  +  - s_tag: REMOVE +    s_commands: +     - s_cmd: file:///bin/rm  +` + +func main() { + +	var c SCORSHmsg + +	var conf SCORSHcfg + +	//log.Printf("%s\n", test_str) + +	err := yaml.Unmarshal([]byte(msg_str), &c) +	if err != nil { +		log.Fatal("error: ", err) +	} + +	for _, item := range c.S_msg { +		fmt.Printf("Record: \n") +		fmt.Printf("  s_tag: %s\n", item.S_tag) +		fmt.Printf("  s_args:\n") + +		for _, a := range item.S_args { +			fmt.Printf("    %s\n", a) +		} +	} + +	fmt.Println("----------------------------") + +	err = yaml.Unmarshal([]byte(cfg_str), &conf) +	if err != nil { +		log.Fatal("error: ", err) +	} + +	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("-+-+-") + +	} + +} | 
