mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-05 04:27:09 +00:00
refactor(ios): extract pure simctl JSON parsers
This commit is contained in:
1 parent
e359f4c606
commit
e802338be2
1 file changed
+20
-12
+20
-12
@@ -69,18 +69,7 @@ func bootedSimulator(ctx context.Context) (*simDevice, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var list simctlDeviceList
|
return parseBootedDevice(out)
|
||||||
if err := json.Unmarshal(out, &list); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
for _, devices := range list.Devices {
|
|
||||||
for _, d := range devices {
|
|
||||||
if d.State == "Booted" {
|
|
||||||
return &d, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func availableSimulators(ctx context.Context) ([]simDevice, error) {
|
func availableSimulators(ctx context.Context) ([]simDevice, error) {
|
||||||
@@ -88,6 +77,25 @@ func availableSimulators(ctx context.Context) ([]simDevice, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
return parseAvailableDevices(out)
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseBootedDevice(out []byte) (*simDevice, error) {
|
||||||
|
var list simctlDeviceList
|
||||||
|
if err := json.Unmarshal(out, &list); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, devices := range list.Devices {
|
||||||
|
for i := range devices {
|
||||||
|
if devices[i].State == "Booted" {
|
||||||
|
return &devices[i], nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseAvailableDevices(out []byte) ([]simDevice, error) {
|
||||||
var list simctlDeviceList
|
var list simctlDeviceList
|
||||||
if err := json.Unmarshal(out, &list); err != nil {
|
if err := json.Unmarshal(out, &list); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
Reference in new issue
Block a user