mdq 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.base.md +41 -22
- data/README.ja.md +41 -22
- data/README.md +41 -22
- data/lib/mdq/check.rb +8 -4
- data/lib/mdq/db.rb +5 -12
- data/lib/mdq/discovery.rb +41 -12
- data/lib/mdq/list.rb +7 -3
- data/lib/mdq/output_builder.rb +27 -0
- data/lib/mdq/version.rb +1 -1
- data/lib/mdq.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90c828a08d219482cbc2aba9694c8e63fb2bbbf41e966ba3f7527f8ddcaa0b5b
|
4
|
+
data.tar.gz: d0de13334301e6a1acd1abddde0fba60705285f8b3e68e2bd6512dfd40d4b0c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb1b0acbc79b82956445a751693bb79feea92a428855ff2d366eb7c1c1a9a33d60e57fe966858d561d097e324b7a40138d383203855c0485869e9bb08f512ddf
|
7
|
+
data.tar.gz: d103ef25cc0fa75f4c56f27ff5cddd2485709c0f1463bea9072eb578f04adfe38281219f9c65c870356c9a41ec5e11c5456f2cb7236b74e3bb1a8f4d650eb0b4
|
data/README.base.md
CHANGED
@@ -31,23 +31,28 @@ $ mdq list
|
|
31
31
|
[
|
32
32
|
{
|
33
33
|
"id": 1,
|
34
|
-
"udid": "
|
35
|
-
"serial_number": "
|
36
|
-
"name": "Pixel
|
34
|
+
"udid": "ANDROID_UDID",
|
35
|
+
"serial_number": "ANDROID_UDID",
|
36
|
+
"name": "Pixel 7",
|
37
37
|
"authorized": true,
|
38
38
|
"platform": "Android",
|
39
39
|
"marketing_name": null,
|
40
|
-
"model": "Pixel
|
40
|
+
"model": "Pixel 7",
|
41
41
|
"build_version": "16",
|
42
|
-
"build_id": "
|
43
|
-
"battery_level":
|
44
|
-
"
|
45
|
-
"
|
46
|
-
|
47
|
-
|
42
|
+
"build_id": "BP31.250502.008",
|
43
|
+
"battery_level": 88,
|
44
|
+
"total_disk": 115249236000,
|
45
|
+
"used_disk": 18835692000,
|
46
|
+
"available_disk": 96413544000,
|
47
|
+
"capacity": 16,
|
48
|
+
"human_readable_total_disk": "107.33 GB",
|
49
|
+
"human_readable_used_disk": "17.54 GB",
|
50
|
+
"human_readable_available_disk": "89.79 GB"
|
51
|
+
},
|
52
|
+
{
|
48
53
|
"id": 2,
|
49
|
-
"udid": "
|
50
|
-
"serial_number": "
|
54
|
+
"udid": "APPLE_UDID",
|
55
|
+
"serial_number": "XXX",
|
51
56
|
"name": "iPhone 16 Pro",
|
52
57
|
"authorized": true,
|
53
58
|
"platform": "iOS",
|
@@ -56,8 +61,13 @@ $ mdq list
|
|
56
61
|
"build_version": "18.4.1",
|
57
62
|
"build_id": "22E252",
|
58
63
|
"battery_level": null,
|
59
|
-
"
|
60
|
-
"
|
64
|
+
"total_disk": 128000000000,
|
65
|
+
"used_disk": null,
|
66
|
+
"available_disk": null,
|
67
|
+
"capacity": null,
|
68
|
+
"human_readable_total_disk": "119.21 GB",
|
69
|
+
"human_readable_used_disk": null,
|
70
|
+
"human_readable_available_disk": null
|
61
71
|
}
|
62
72
|
]
|
63
73
|
```
|
@@ -67,10 +77,10 @@ You can filter using SQL.
|
|
67
77
|
```
|
68
78
|
$ mdq list -q="select * from devices where platform='iOS'"
|
69
79
|
[
|
70
|
-
|
80
|
+
{
|
71
81
|
"id": 1,
|
72
|
-
"udid": "
|
73
|
-
"serial_number": "
|
82
|
+
"udid": "APPLE_UDID",
|
83
|
+
"serial_number": "XXX",
|
74
84
|
"name": "iPhone 16 Pro",
|
75
85
|
"authorized": true,
|
76
86
|
"platform": "iOS",
|
@@ -79,8 +89,13 @@ $ mdq list -q="select * from devices where platform='iOS'"
|
|
79
89
|
"build_version": "18.4.1",
|
80
90
|
"build_id": "22E252",
|
81
91
|
"battery_level": null,
|
82
|
-
"
|
83
|
-
"
|
92
|
+
"total_disk": 128000000000,
|
93
|
+
"used_disk": null,
|
94
|
+
"available_disk": null,
|
95
|
+
"capacity": null,
|
96
|
+
"human_readable_total_disk": "119.21 GB",
|
97
|
+
"human_readable_used_disk": null,
|
98
|
+
"human_readable_available_disk": null
|
84
99
|
}
|
85
100
|
]
|
86
101
|
```
|
@@ -129,9 +144,13 @@ Details of the devices table.
|
|
129
144
|
| build_version | ro.build.version.release | deviceProperties.osVersionNumber |
|
130
145
|
| build_id | ro.build.id | deviceProperties.osBuildUpdate |
|
131
146
|
| battery_level | battery | Always "null" |
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
147
|
+
| total_disk | df | hardwareProperties.internalStorageCapacity |
|
148
|
+
| available_disk | df | Always "null" |
|
149
|
+
| used_disk | total_disk - total_disk | Always "null" |
|
150
|
+
| capacity | (used_disk / total_disk) * 100 | Always "null" |
|
151
|
+
| human_readable_total_disk | total_disk | total_disk |
|
152
|
+
| human_readable_available_disk | available_disk | Always "null" |
|
153
|
+
| human_readable_used_disk | used_disk | Always "null" |
|
135
154
|
|
136
155
|
Details of the apps table.
|
137
156
|
Apple Devices displays the apps installed with Xcode.
|
data/README.ja.md
CHANGED
@@ -26,23 +26,28 @@ $ mdq list
|
|
26
26
|
[
|
27
27
|
{
|
28
28
|
"id": 1,
|
29
|
-
"udid": "
|
30
|
-
"serial_number": "
|
31
|
-
"name": "Pixel
|
29
|
+
"udid": "ANDROID_UDID",
|
30
|
+
"serial_number": "ANDROID_UDID",
|
31
|
+
"name": "Pixel 7",
|
32
32
|
"authorized": true,
|
33
33
|
"platform": "Android",
|
34
34
|
"marketing_name": null,
|
35
|
-
"model": "Pixel
|
35
|
+
"model": "Pixel 7",
|
36
36
|
"build_version": "16",
|
37
|
-
"build_id": "
|
38
|
-
"battery_level":
|
39
|
-
"
|
40
|
-
"
|
41
|
-
|
42
|
-
|
37
|
+
"build_id": "BP31.250502.008",
|
38
|
+
"battery_level": 88,
|
39
|
+
"total_disk": 115249236000,
|
40
|
+
"used_disk": 18835692000,
|
41
|
+
"available_disk": 96413544000,
|
42
|
+
"capacity": 16,
|
43
|
+
"human_readable_total_disk": "107.33 GB",
|
44
|
+
"human_readable_used_disk": "17.54 GB",
|
45
|
+
"human_readable_available_disk": "89.79 GB"
|
46
|
+
},
|
47
|
+
{
|
43
48
|
"id": 2,
|
44
|
-
"udid": "
|
45
|
-
"serial_number": "
|
49
|
+
"udid": "APPLE_UDID",
|
50
|
+
"serial_number": "XXX",
|
46
51
|
"name": "iPhone 16 Pro",
|
47
52
|
"authorized": true,
|
48
53
|
"platform": "iOS",
|
@@ -51,8 +56,13 @@ $ mdq list
|
|
51
56
|
"build_version": "18.4.1",
|
52
57
|
"build_id": "22E252",
|
53
58
|
"battery_level": null,
|
54
|
-
"
|
55
|
-
"
|
59
|
+
"total_disk": 128000000000,
|
60
|
+
"used_disk": null,
|
61
|
+
"available_disk": null,
|
62
|
+
"capacity": null,
|
63
|
+
"human_readable_total_disk": "119.21 GB",
|
64
|
+
"human_readable_used_disk": null,
|
65
|
+
"human_readable_available_disk": null
|
56
66
|
}
|
57
67
|
]
|
58
68
|
```
|
@@ -62,10 +72,10 @@ You can filter using SQL.
|
|
62
72
|
```
|
63
73
|
$ mdq list -q="select * from devices where platform='iOS'"
|
64
74
|
[
|
65
|
-
|
75
|
+
{
|
66
76
|
"id": 1,
|
67
|
-
"udid": "
|
68
|
-
"serial_number": "
|
77
|
+
"udid": "APPLE_UDID",
|
78
|
+
"serial_number": "XXX",
|
69
79
|
"name": "iPhone 16 Pro",
|
70
80
|
"authorized": true,
|
71
81
|
"platform": "iOS",
|
@@ -74,8 +84,13 @@ $ mdq list -q="select * from devices where platform='iOS'"
|
|
74
84
|
"build_version": "18.4.1",
|
75
85
|
"build_id": "22E252",
|
76
86
|
"battery_level": null,
|
77
|
-
"
|
78
|
-
"
|
87
|
+
"total_disk": 128000000000,
|
88
|
+
"used_disk": null,
|
89
|
+
"available_disk": null,
|
90
|
+
"capacity": null,
|
91
|
+
"human_readable_total_disk": "119.21 GB",
|
92
|
+
"human_readable_used_disk": null,
|
93
|
+
"human_readable_available_disk": null
|
79
94
|
}
|
80
95
|
]
|
81
96
|
```
|
@@ -124,9 +139,13 @@ Details of the devices table.
|
|
124
139
|
| build_version | ro.build.version.release | deviceProperties.osVersionNumber |
|
125
140
|
| build_id | ro.build.id | deviceProperties.osBuildUpdate |
|
126
141
|
| battery_level | battery | Always "null" |
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
142
|
+
| total_disk | df | hardwareProperties.internalStorageCapacity |
|
143
|
+
| available_disk | df | Always "null" |
|
144
|
+
| used_disk | total_disk - total_disk | Always "null" |
|
145
|
+
| capacity | (used_disk / total_disk) * 100 | Always "null" |
|
146
|
+
| human_readable_total_disk | total_disk | total_disk |
|
147
|
+
| human_readable_available_disk | available_disk | Always "null" |
|
148
|
+
| human_readable_used_disk | used_disk | Always "null" |
|
130
149
|
|
131
150
|
Details of the apps table.
|
132
151
|
Apple Devices displays the apps installed with Xcode.
|
data/README.md
CHANGED
@@ -26,23 +26,28 @@ $ mdq list
|
|
26
26
|
[
|
27
27
|
{
|
28
28
|
"id": 1,
|
29
|
-
"udid": "
|
30
|
-
"serial_number": "
|
31
|
-
"name": "Pixel
|
29
|
+
"udid": "ANDROID_UDID",
|
30
|
+
"serial_number": "ANDROID_UDID",
|
31
|
+
"name": "Pixel 7",
|
32
32
|
"authorized": true,
|
33
33
|
"platform": "Android",
|
34
34
|
"marketing_name": null,
|
35
|
-
"model": "Pixel
|
35
|
+
"model": "Pixel 7",
|
36
36
|
"build_version": "16",
|
37
|
-
"build_id": "
|
38
|
-
"battery_level":
|
39
|
-
"
|
40
|
-
"
|
41
|
-
|
42
|
-
|
37
|
+
"build_id": "BP31.250502.008",
|
38
|
+
"battery_level": 88,
|
39
|
+
"total_disk": 115249236000,
|
40
|
+
"used_disk": 18835692000,
|
41
|
+
"available_disk": 96413544000,
|
42
|
+
"capacity": 16,
|
43
|
+
"human_readable_total_disk": "107.33 GB",
|
44
|
+
"human_readable_used_disk": "17.54 GB",
|
45
|
+
"human_readable_available_disk": "89.79 GB"
|
46
|
+
},
|
47
|
+
{
|
43
48
|
"id": 2,
|
44
|
-
"udid": "
|
45
|
-
"serial_number": "
|
49
|
+
"udid": "APPLE_UDID",
|
50
|
+
"serial_number": "XXX",
|
46
51
|
"name": "iPhone 16 Pro",
|
47
52
|
"authorized": true,
|
48
53
|
"platform": "iOS",
|
@@ -51,8 +56,13 @@ $ mdq list
|
|
51
56
|
"build_version": "18.4.1",
|
52
57
|
"build_id": "22E252",
|
53
58
|
"battery_level": null,
|
54
|
-
"
|
55
|
-
"
|
59
|
+
"total_disk": 128000000000,
|
60
|
+
"used_disk": null,
|
61
|
+
"available_disk": null,
|
62
|
+
"capacity": null,
|
63
|
+
"human_readable_total_disk": "119.21 GB",
|
64
|
+
"human_readable_used_disk": null,
|
65
|
+
"human_readable_available_disk": null
|
56
66
|
}
|
57
67
|
]
|
58
68
|
```
|
@@ -62,10 +72,10 @@ You can filter using SQL.
|
|
62
72
|
```
|
63
73
|
$ mdq list -q="select * from devices where platform='iOS'"
|
64
74
|
[
|
65
|
-
|
75
|
+
{
|
66
76
|
"id": 1,
|
67
|
-
"udid": "
|
68
|
-
"serial_number": "
|
77
|
+
"udid": "APPLE_UDID",
|
78
|
+
"serial_number": "XXX",
|
69
79
|
"name": "iPhone 16 Pro",
|
70
80
|
"authorized": true,
|
71
81
|
"platform": "iOS",
|
@@ -74,8 +84,13 @@ $ mdq list -q="select * from devices where platform='iOS'"
|
|
74
84
|
"build_version": "18.4.1",
|
75
85
|
"build_id": "22E252",
|
76
86
|
"battery_level": null,
|
77
|
-
"
|
78
|
-
"
|
87
|
+
"total_disk": 128000000000,
|
88
|
+
"used_disk": null,
|
89
|
+
"available_disk": null,
|
90
|
+
"capacity": null,
|
91
|
+
"human_readable_total_disk": "119.21 GB",
|
92
|
+
"human_readable_used_disk": null,
|
93
|
+
"human_readable_available_disk": null
|
79
94
|
}
|
80
95
|
]
|
81
96
|
```
|
@@ -124,9 +139,13 @@ Details of the devices table.
|
|
124
139
|
| build_version | ro.build.version.release | deviceProperties.osVersionNumber |
|
125
140
|
| build_id | ro.build.id | deviceProperties.osBuildUpdate |
|
126
141
|
| battery_level | battery | Always "null" |
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
142
|
+
| total_disk | df | hardwareProperties.internalStorageCapacity |
|
143
|
+
| available_disk | df | Always "null" |
|
144
|
+
| used_disk | total_disk - total_disk | Always "null" |
|
145
|
+
| capacity | (used_disk / total_disk) * 100 | Always "null" |
|
146
|
+
| human_readable_total_disk | total_disk | total_disk |
|
147
|
+
| human_readable_available_disk | available_disk | Always "null" |
|
148
|
+
| human_readable_used_disk | used_disk | Always "null" |
|
130
149
|
|
131
150
|
Details of the apps table.
|
132
151
|
Apple Devices displays the apps installed with Xcode.
|
data/lib/mdq/check.rb
CHANGED
@@ -7,18 +7,22 @@ module Mdq
|
|
7
7
|
# Check
|
8
8
|
class Check
|
9
9
|
def initialize
|
10
|
+
ob = Mdq::OutputBuilder.new
|
11
|
+
|
10
12
|
db = Mdq::DB.new
|
11
|
-
show_message('adb', db.android_discoverable?)
|
12
|
-
show_message('Xcode', db.apple_discoverable?)
|
13
|
+
ob.add(show_message('adb', db.android_discoverable?))
|
14
|
+
ob.add(show_message('Xcode', db.apple_discoverable?))
|
15
|
+
|
16
|
+
ob.print
|
13
17
|
end
|
14
18
|
|
15
19
|
private
|
16
20
|
|
17
21
|
def show_message(name, discoverable)
|
18
22
|
if discoverable
|
19
|
-
|
23
|
+
{ result: "#{name} is installed." }
|
20
24
|
else
|
21
|
-
|
25
|
+
{ result: "#{name} is not installed." }
|
22
26
|
end
|
23
27
|
end
|
24
28
|
end
|
data/lib/mdq/db.rb
CHANGED
@@ -27,9 +27,8 @@ module Mdq
|
|
27
27
|
|
28
28
|
begin
|
29
29
|
ActiveRecord::Base.connection.execute(sql)
|
30
|
-
rescue StandardError
|
31
|
-
|
32
|
-
exit
|
30
|
+
rescue StandardError => e
|
31
|
+
{ result: e }
|
33
32
|
end
|
34
33
|
else
|
35
34
|
Device.all
|
@@ -46,7 +45,7 @@ module Mdq
|
|
46
45
|
adb_command("pull #{file} #{output}", udid)
|
47
46
|
adb_command("adb shell rm #{file}")
|
48
47
|
|
49
|
-
|
48
|
+
{ command: 'cap', udid: udid, result: nil }
|
50
49
|
end
|
51
50
|
|
52
51
|
# Appをインストールする
|
@@ -54,10 +53,7 @@ module Mdq
|
|
54
53
|
output, = adb_command("install #{input}", udid) if is_android && input.end_with?('.apk')
|
55
54
|
output, = apple_command("device install app #{input}", udid) if !is_android && input.end_with?('.ipa')
|
56
55
|
|
57
|
-
|
58
|
-
|
59
|
-
puts "# Install #{input} to #{udid}"
|
60
|
-
puts output
|
56
|
+
{ command: 'install', udid: udid, result: output }
|
61
57
|
end
|
62
58
|
|
63
59
|
# Appをアンインストールする
|
@@ -68,10 +64,7 @@ module Mdq
|
|
68
64
|
output, = apple_command("device uninstall app #{input}", udid)
|
69
65
|
end
|
70
66
|
|
71
|
-
|
72
|
-
|
73
|
-
puts "# Uninstall #{input} from #{udid}"
|
74
|
-
puts output
|
67
|
+
{ command: 'uninstall', udid: udid, result: output }
|
75
68
|
end
|
76
69
|
end
|
77
70
|
end
|
data/lib/mdq/discovery.rb
CHANGED
@@ -53,7 +53,7 @@ module Mdq
|
|
53
53
|
end
|
54
54
|
|
55
55
|
# Androidデバイス一覧を取得する
|
56
|
-
def android_discover
|
56
|
+
def android_discover # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
57
57
|
output, = adb_command('devices -l')
|
58
58
|
return if output.nil?
|
59
59
|
|
@@ -71,8 +71,9 @@ module Mdq
|
|
71
71
|
build_id, = adb_command('shell getprop ro.build.id', udid)
|
72
72
|
name, = adb_command('shell settings get global device_name', udid)
|
73
73
|
battery_level = nil
|
74
|
-
|
75
|
-
|
74
|
+
total_disk = nil
|
75
|
+
available_disk = nil
|
76
|
+
used_disk = nil
|
76
77
|
|
77
78
|
# バッテリー
|
78
79
|
lines1, = adb_command('shell dumpsys battery', udid)
|
@@ -86,10 +87,11 @@ module Mdq
|
|
86
87
|
next if index2.zero?
|
87
88
|
|
88
89
|
columns = line2.split
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
90
|
+
next if columns[5].index('/data').nil?
|
91
|
+
|
92
|
+
total_disk = columns[1].to_f * 1000
|
93
|
+
available_disk = columns[3].to_f * 1000
|
94
|
+
used_disk = total_disk - available_disk
|
93
95
|
end
|
94
96
|
|
95
97
|
Device.create({
|
@@ -101,8 +103,13 @@ module Mdq
|
|
101
103
|
build_version: build_version.strip,
|
102
104
|
build_id: build_id.strip,
|
103
105
|
battery_level: battery_level,
|
104
|
-
|
105
|
-
|
106
|
+
total_disk: total_disk,
|
107
|
+
available_disk: available_disk,
|
108
|
+
used_disk: used_disk,
|
109
|
+
capacity: (used_disk / total_disk) * 100,
|
110
|
+
human_readable_total_disk: number_to_human_size(total_disk),
|
111
|
+
human_readable_available_disk: number_to_human_size(available_disk),
|
112
|
+
human_readable_used_disk: number_to_human_size(used_disk),
|
106
113
|
platform: 'Android'
|
107
114
|
})
|
108
115
|
|
@@ -128,6 +135,7 @@ module Mdq
|
|
128
135
|
result = JSON.parse(f.read)
|
129
136
|
result['result']['devices'].each do |device|
|
130
137
|
udid = device['hardwareProperties']['udid']
|
138
|
+
total_disk = device['hardwareProperties']['internalStorageCapacity']
|
131
139
|
Device.create({
|
132
140
|
udid: udid,
|
133
141
|
serial_number: device['hardwareProperties']['serialNumber'],
|
@@ -138,7 +146,8 @@ module Mdq
|
|
138
146
|
model: device['hardwareProperties']['productType'],
|
139
147
|
build_version: device['deviceProperties']['osVersionNumber'],
|
140
148
|
build_id: device['deviceProperties']['osBuildUpdate'],
|
141
|
-
|
149
|
+
total_disk: total_disk,
|
150
|
+
human_readable_total_disk: number_to_human_size(total_disk)
|
142
151
|
})
|
143
152
|
end
|
144
153
|
|
@@ -179,12 +188,27 @@ module Mdq
|
|
179
188
|
File.delete(file)
|
180
189
|
end
|
181
190
|
|
191
|
+
# DBのリセット
|
182
192
|
def reset
|
183
193
|
Device.destroy_all
|
184
194
|
App.destroy_all
|
185
195
|
ActiveRecord::Base.connection.execute("delete from sqlite_sequence where name='devices'")
|
186
196
|
ActiveRecord::Base.connection.execute("delete from sqlite_sequence where name='apps'")
|
187
197
|
end
|
198
|
+
|
199
|
+
def number_to_human_size(size)
|
200
|
+
return nil if size.nil?
|
201
|
+
|
202
|
+
units = [' B', ' KB', ' MB', ' GB', ' TB']
|
203
|
+
|
204
|
+
i = 0
|
205
|
+
while size > 1024
|
206
|
+
size /= 1024.0 # 浮動小数点数での割り算
|
207
|
+
i += 1
|
208
|
+
end
|
209
|
+
|
210
|
+
"#{(size * 100).round / 100.0}#{units[i]}"
|
211
|
+
end
|
188
212
|
end
|
189
213
|
end
|
190
214
|
|
@@ -207,8 +231,13 @@ ActiveRecord::Migration.create_table :devices do |t|
|
|
207
231
|
t.string :build_version
|
208
232
|
t.string :build_id
|
209
233
|
t.integer :battery_level
|
210
|
-
t.integer :
|
211
|
-
t.integer :
|
234
|
+
t.integer :total_disk
|
235
|
+
t.integer :used_disk
|
236
|
+
t.integer :available_disk
|
237
|
+
t.integer :capacity
|
238
|
+
t.string :human_readable_total_disk
|
239
|
+
t.string :human_readable_used_disk
|
240
|
+
t.string :human_readable_available_disk
|
212
241
|
end
|
213
242
|
|
214
243
|
ActiveRecord::Migration.create_table :apps do |t|
|
data/lib/mdq/list.rb
CHANGED
@@ -20,17 +20,21 @@ module Mdq
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
+
ob = Mdq::OutputBuilder.new
|
24
|
+
|
23
25
|
models.each do |device|
|
24
26
|
model = Device.find_by(udid: device.udid)
|
25
27
|
udid = model.udid
|
26
28
|
is_android = model.android?
|
27
29
|
|
28
|
-
|
29
|
-
|
30
|
-
|
30
|
+
ob.add(db.device_screencap(options[:cap], udid, is_android)) if options[:cap]
|
31
|
+
ob.add(db.app_install(options[:install], udid, is_android)) if options[:install]
|
32
|
+
ob.add(db.app_uninstall(options[:uninstall], udid, is_android)) if options[:uninstall]
|
31
33
|
rescue StandardError
|
32
34
|
# none
|
33
35
|
end
|
36
|
+
|
37
|
+
ob.print
|
34
38
|
end
|
35
39
|
end
|
36
40
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'mdq'
|
4
|
+
|
5
|
+
# Mdq
|
6
|
+
module Mdq
|
7
|
+
# OutputBuilder
|
8
|
+
class OutputBuilder
|
9
|
+
def initialize
|
10
|
+
@result = []
|
11
|
+
end
|
12
|
+
|
13
|
+
def clear
|
14
|
+
@result = []
|
15
|
+
end
|
16
|
+
|
17
|
+
def add(new_result)
|
18
|
+
@result << new_result
|
19
|
+
end
|
20
|
+
|
21
|
+
def print
|
22
|
+
return if @result == []
|
23
|
+
|
24
|
+
puts JSON.pretty_generate(@result.as_json)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/mdq/version.rb
CHANGED
data/lib/mdq.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mdq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- arthur87
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-05-
|
11
|
+
date: 2025-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- lib/mdq/db.rb
|
91
91
|
- lib/mdq/discovery.rb
|
92
92
|
- lib/mdq/list.rb
|
93
|
+
- lib/mdq/output_builder.rb
|
93
94
|
- lib/mdq/version.rb
|
94
95
|
homepage: https://github.com/arthur87/mdq
|
95
96
|
licenses:
|