Skip to content

Instantly share code, notes, and snippets.

@progrium
Created February 17, 2015 14:19
Show Gist options
  • Save progrium/d782e574bb2e97d5ebdc to your computer and use it in GitHub Desktop.
Save progrium/d782e574bb2e97d5ebdc to your computer and use it in GitHub Desktop.

Revisions

  1. progrium revised this gist Feb 17, 2015. 2 changed files with 0 additions and 0 deletions.
    File renamed without changes.
    File renamed without changes.
  2. progrium created this gist Feb 17, 2015.
    1 change: 1 addition & 0 deletions bash
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    curl -s "$url" | tar -zxC "$dest"
    32 changes: 32 additions & 0 deletions golang
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,32 @@
    func downloadAndInstall(url, dest string) error {
    resp, err := http.Get(url)
    if err != nil {
    return error
    }
    defer resp.Body.Close()
    zip, err := gzip.NewReader(resp.Body)
    if err != nil {
    return error
    }
    defer zip.Close()
    archive := tar.NewReader(zip)
    for {
    header, err := archive.Next()
    if err == io.EOF {
    break
    }
    if err != nil {
    return err
    }
    filename := fmt.Sprintf("%s/%s", dest, header.Name)
    file, err := os.Create(filename)
    if err != nil {
    return err
    }
    defer file.Close()
    _, err := io.Copy(file, archive)
    if err != nil {
    return err
    }
    }
    }