summary refs log tree commit diff stats
path: root/pkg/background/download.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/background/download.go')
-rw-r--r--pkg/background/download.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/pkg/background/download.go b/pkg/background/download.go
new file mode 100644
index 0000000..fd391a6
--- /dev/null
+++ b/pkg/background/download.go
@@ -0,0 +1,34 @@
+package background
+
+import (
+	"fmt"
+	"io"
+	"net/http"
+	"os"
+)
+
+// Download takes path and url as input and downloads the data to a
+// file, returning an error if there is one
+func Download(file string, url string) (err error) {
+	o, err := os.Create(file)
+	if err != nil {
+		return err
+	}
+	defer o.Close()
+
+	res, err := http.Get(url)
+	if err != nil {
+		return err
+	}
+	defer res.Body.Close()
+
+	if res.StatusCode != http.StatusOK {
+		return fmt.Errorf("Unexpected Response: %s", res.Status)
+	}
+
+	_, err = io.Copy(o, res.Body)
+	if err != nil {
+		return err
+	}
+	return nil
+}