Browse Source

Get more information from adb devices

pull/8/head
Daniel Martí 11 years ago
parent
commit
2d0d953f52
  1. 20
      adb/adb.go
  2. 4
      cmd/fdroidcl/main.go

20
adb/adb.go

@ -18,12 +18,17 @@ func StartServer() error {
return nil return nil
} }
type Device string type Device struct {
Id string
Product string
Model string
Device string
}
var deviceRegex = regexp.MustCompile(`^(.+)\tdevice`) var deviceRegex = regexp.MustCompile(`^([^\s]+)\s+device\s+product:([^\s]+)\s+model:([^\s]+)\s+device:([^\s]+)`)
func Devices() ([]Device, error) { func Devices() ([]Device, error) {
cmd := exec.Command("adb", "devices") cmd := exec.Command("adb", "devices", "-l")
stdout, err := cmd.StdoutPipe() stdout, err := cmd.StdoutPipe()
if err != nil { if err != nil {
return nil, err return nil, err
@ -39,8 +44,13 @@ func Devices() ([]Device, error) {
if len(m) < 2 { if len(m) < 2 {
continue continue
} }
device := Device(m[1]) device := Device{
if device == "" { Id: m[1],
Product: m[2],
Model: m[3],
Device: m[4],
}
if device.Id == "" {
continue continue
} }
devices = append(devices, device) devices = append(devices, device)

4
cmd/fdroidcl/main.go

@ -16,7 +16,7 @@ import (
) )
func appMatches(fields []string, terms []string) bool { func appMatches(fields []string, terms []string) bool {
fieldLoop: fieldLoop:
for _, field := range fields { for _, field := range fields {
for _, term := range terms { for _, term := range terms {
if !strings.Contains(field, term) { if !strings.Contains(field, term) {
@ -132,7 +132,7 @@ func main() {
log.Fatalf("Could not list devices: %v", err) log.Fatalf("Could not list devices: %v", err)
} }
for _, device := range devices { for _, device := range devices {
fmt.Println(device) fmt.Printf("%s - %s (%s)\n", device.Id, device.Model, device.Product)
} }
default: default:
log.Printf("Unrecognised command '%s'\n\n", cmd) log.Printf("Unrecognised command '%s'\n\n", cmd)

Loading…
Cancel
Save