aboutsummaryrefslogtreecommitdiff
path: root/config.go
diff options
context:
space:
mode:
authorGravatar Grayson Koonce <grayson.koonce@gmail.com> 2016-10-12 11:04:26 -0700
committerGravatar GitHub <noreply@github.com> 2016-10-12 11:04:26 -0700
commitac8374fd17e30fca9a7773a2a6f690a7ea4d2ec9 (patch)
treee9a61adde4bc5eef80583f3e1d6f9379a20b4f99 /config.go
parentb80c4f3e920994823061eb05dc0a5bc3881ddb02 (diff)
downloadsally-ac8374fd17e30fca9a7773a2a6f690a7ea4d2ec9.tar.gz
sally-ac8374fd17e30fca9a7773a2a6f690a7ea4d2ec9.tar.zst
sally-ac8374fd17e30fca9a7773a2a6f690a7ea4d2ec9.zip
Rework as HTTP server (#15)
Diffstat (limited to 'config.go')
-rw-r--r--config.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/config.go b/config.go
new file mode 100644
index 0000000..5071f37
--- /dev/null
+++ b/config.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
+}