Browse Source

Implement device listing in adb

pull/8/head
Daniel Martí 11 years ago
parent
commit
d180376e07
  1. 30
      adb/adb.go
  2. 10
      cmd/fdroidcl/main.go

30
adb/adb.go

@ -4,7 +4,9 @@
package adb
import (
"bufio"
"os/exec"
"regexp"
)
func StartServer() error {
@ -16,12 +18,32 @@ func StartServer() error {
return nil
}
func DeviceList() ([]string, error) {
type Device string
var deviceRegex = regexp.MustCompile(`^(.+)\tdevice`)
func Devices() ([]Device, error) {
cmd := exec.Command("adb", "devices")
stdout, err := cmd.Output()
stdout, err := cmd.StdoutPipe()
if err != nil {
return nil, err
}
_ = stdout
return nil, nil
if err := cmd.Start(); err != nil {
return nil, err
}
var devices []Device
scanner := bufio.NewScanner(stdout)
for scanner.Scan() {
line := scanner.Text()
m := deviceRegex.FindStringSubmatch(line)
if len(m) < 2 {
continue
}
device := Device(m[1])
if device == "" {
continue
}
devices = append(devices, device)
}
return devices, nil
}

10
cmd/fdroidcl/main.go

@ -12,6 +12,7 @@ import (
"strings"
"github.com/mvdan/fdroidcl"
"github.com/mvdan/fdroidcl/adb"
)
func appMatches(fields []string, terms []string) bool {
@ -73,6 +74,7 @@ func init() {
p(" list List all available apps")
p(" search <term...> Search available apps")
p(" show <appid...> Show detailed info of an app")
p(" devices List connected devices")
}
}
@ -124,6 +126,14 @@ func main() {
}
app.WriteDetailed(os.Stdout)
}
case "devices":
devices, err := adb.Devices()
if err != nil {
log.Fatalf("Could not list devices: %v", err)
}
for _, device := range devices {
fmt.Println(device)
}
default:
log.Printf("Unrecognised command '%s'\n\n", cmd)
flag.Usage()

Loading…
Cancel
Save