realm-js/scripts/find-ios-device.rb

25 lines
802 B
Ruby

#!/usr/bin/ruby
require 'json'
ios_sim_default_device_type = ENV["IOS_SIM_DEVICE_TYPE"] or "iPhone 5s"
ios_sim_default_ios_version = ENV["IOS_SIM_OS"] or "iOS 10.1"
mode = ARGV[0]
devices = JSON.parse(%x{xcrun simctl list devices --json})['devices']
.each { |os, group| group.each{ |dev| dev['os'] = os } }
.flat_map { |x| x[1] }
if mode == "booted" then
device = devices.select{|x| x['state'] == 'Booted'}
else
device = devices
.select{ |x| x['availability'] == '(available)' }
.each { |x| x['score'] = (x['name'] == '$ios_sim_default_device_type' ? 1 : 0) + (x['os'] == '$ios_sim_default_ios_version' ? 1 : 0) }
.sort_by! { |x| [x['score'], x['name']] }
.reverse!
end
if device and device[0] then
puts device[0]['udid']
end