From cba441714f357b9b25d5c0cacbfb2e376bbbe679 Mon Sep 17 00:00:00 2001 From: Grayson Koonce Date: Fri, 30 Sep 2016 15:34:03 -0700 Subject: Starting point (#1) --- parse.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 parse.go (limited to 'parse.go') diff --git a/parse.go b/parse.go new file mode 100644 index 0000000..5071f37 --- /dev/null +++ b/parse.go @@ -0,0 +1,34 @@ +package main + +import ( + "io/ioutil" + + "gopkg.in/yaml.v2" +) + +// Config represents the structure of the yaml file +type Config struct { + URL string `yaml:"url"` + Packages map[string]Package `yaml:"packages"` +} + +// Package details the options available for each repo +type Package struct { + Repo string `yaml:"repo"` +} + +// Parse takes a path to a yaml file and produces a parsed Config +func Parse(path string) (Config, error) { + var c Config + + data, err := ioutil.ReadFile(path) + if err != nil { + return c, err + } + + if err := yaml.Unmarshal(data, &c); err != nil { + return c, err + } + + return c, err +} -- cgit v1.2.3