@@ -2,6 +2,11 @@ package cmd
22
33import (
44 "fmt"
5+ "io/ioutil"
6+ "net/http"
7+ "os"
8+ "os/user"
9+ "path/filepath"
510 "regexp"
611 "strconv"
712
@@ -250,3 +255,50 @@ func Update() error {
250255 }
251256 return nil
252257}
258+
259+ func RefreshUnits () error {
260+ // create the $HOME/.deisctl directory if necessary
261+ user , err := user .Current ()
262+ if err != nil {
263+ return err
264+ }
265+ dir := filepath .Join (user .HomeDir , ".deisctl" )
266+ if err = os .MkdirAll (dir , 0700 ); err != nil {
267+ return err
268+ }
269+
270+ // download and save the unit files to $HOME/.deisctl
271+ rootUrl := "https://raw.githubusercontent.com/deis/deisctl/"
272+ branch := "master"
273+ units := []string {
274+ "deis-builder.service" ,
275+ "deis-builder-data.service" ,
276+ "deis-cache.service" ,
277+ "deis-controller.service" ,
278+ "deis-database.service" ,
279+ "deis-database-data.service" ,
280+ "deis-logger.service" ,
281+ "deis-logger-data.service" ,
282+ "deis-registry.service" ,
283+ "deis-registry-data.service" ,
284+ "deis-router.service" ,
285+ }
286+ for _ , unit := range units {
287+ src := rootUrl + branch + "/units/" + unit
288+ dest := filepath .Join (dir , unit )
289+ res , err := http .Get (src )
290+ if err != nil {
291+ return err
292+ }
293+ defer res .Body .Close ()
294+ data , err := ioutil .ReadAll (res .Body )
295+ if err != nil {
296+ return err
297+ }
298+ if err = ioutil .WriteFile (dest , data , 0600 ); err != nil {
299+ return err
300+ }
301+ fmt .Printf ("Refreshed %s from %s\n " , unit , branch )
302+ }
303+ return nil
304+ }
0 commit comments