Merge lp:~savilerow-team/savilerow/savvy-go-cli-deploy into lp:savilerow/savvy

Proposed by Chris Wayne
Status: Merged
Merged at revision: 19
Proposed branch: lp:~savilerow-team/savilerow/savvy-go-cli-deploy
Merge into: lp:savilerow/savvy
Diff against target: 77 lines (+55/-2)
1 file modified
savvy-tailor/deploy.go (+55/-2)
To merge this branch: bzr merge lp:~savilerow-team/savilerow/savvy-go-cli-deploy
Reviewer Review Type Date Requested Status
Jani Monoses (community) Approve
Review via email: mp+216375@code.launchpad.net

Description of the change

Implement savvy deploy in go

To post a comment you must log in.
Revision history for this message
Jani Monoses (jani) wrote :

go fmt to rearrange imports at least.

line 69: call defer after the error check as a few lines above

20. By Chris Wayne

Ran goimports

21. By Chris Wayne

Call defer after checkErr, as per MP comments

Revision history for this message
Jani Monoses (jani) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'savvy-tailor/deploy.go'
2--- savvy-tailor/deploy.go 2014-04-12 01:02:25 +0000
3+++ savvy-tailor/deploy.go 2014-04-18 01:29:44 +0000
4@@ -2,18 +2,71 @@
5
6 import (
7 "fmt"
8+ "io"
9+ "launchpad.net/goget-ubuntu-touch/devices"
10+ "net/http"
11+ "os"
12+ "path/filepath"
13 )
14
15 type DeployCommand struct {
16 }
17
18-var deployCommand DeployCommand
19+const (
20+ recoveryDir = "/cache/recovery"
21+ remotePath = "http://people.canonical.com/~cwayne/touch/custom-recovery/"
22+)
23+
24+var (
25+ downloadDir = os.ExpandEnv("$HOME/.cache/savilerow/")
26+ deployCommand DeployCommand
27+ fastboot devices.Fastboot
28+)
29
30 func (x *DeployCommand) Execute(args []string) error {
31- fmt.Println("deplou")
32+ adb, err := devices.NewUbuntuDebugBridge()
33+ checkErr(err)
34+ dev, err := adb.GetDevice()
35+ checkErr(err)
36+ fmt.Println(dev)
37+ if _, err := os.Stat(downloadDir); os.IsNotExist(err) {
38+ err = os.Mkdir(downloadDir, 0700)
39+ checkErr(err)
40+ }
41+ recoveryURL := dev + "-recovery.img"
42+ download(recoveryURL)
43+ download("ubuntu_command")
44+ fmt.Println("Pushing custom.tar.xz")
45+ err = adb.Push("custom.tar.xz", recoveryDir)
46+ checkErr(err)
47+ fmt.Println("Pushed custom.tar.xz")
48+ fmt.Println("Pushing ubuntu_command")
49+ ubu_command := filepath.Join(downloadDir, "ubuntu_command")
50+ recovery_image := filepath.Join(downloadDir, recoveryURL)
51+ fmt.Println("Pushed ubuntu_command")
52+ fmt.Println("Booting into recovery")
53+ adb.Push(ubu_command, recoveryDir)
54+ err = adb.RebootBootloader()
55+ checkErr(err)
56+ err = fastboot.BootImage(recovery_image)
57+ checkErr(err)
58+ err = adb.WaitForRecovery()
59+ checkErr(err)
60 return nil
61 }
62
63+func download(url string) error {
64+ downloadPath := filepath.Join(downloadDir, url)
65+ out, err := os.Create(downloadPath)
66+ checkErr(err)
67+ defer out.Close()
68+ resp, err := http.Get(remotePath + url)
69+ checkErr(err)
70+ defer resp.Body.Close()
71+ _, err = io.Copy(out, resp.Body)
72+ return err
73+}
74+
75 func init() {
76 parser.AddCommand("deploy", "Deploy a built custom package to a device", "Deploy a built custom package to a device", &deployCommand)
77 }

Subscribers

People subscribed via source and target branches

to all changes: