require ‘rake’ require ‘rswift’

DERIVED_DATA_PATH = ‘build’ DEBUG_ENV_KEY = ‘debug’

debug = ENV debug ||= ‘0’

workspace = RSwift::WorkspaceProvider.workspace project = Xcodeproj::Project.open(Dir.glob(‘*.xcodeproj’).first)

task :default => :run

desc ‘Build workspace’ task :build do

output = ""
IO.popen("xcodebuild -workspace #{workspace} -scheme #{project.app_scheme_name} -destination 'platform=macosx' -derivedDataPath #{DERIVED_DATA_PATH} | xcpretty").each do |line|
  puts line.chomp
  output = line.chomp
end
success = output.include? "Build Succeeded"
abort unless success

end

desc ‘Run the application’ task :run => [:build] do

if debug.to_i.nonzero?
  exec "lldb #{DERIVED_DATA_PATH}/Build/Products/#{project.debug_build_configuration.name}/#{project.app_target.product_name}.app/"
else
  system "open #{DERIVED_DATA_PATH}/Build/Products/#{project.debug_build_configuration.name}/#{project.app_target.product_name}.app/"
  exec "tail -f /private/var/log/system.log"
end

end

desc ‘Run the test/spec suite’ task :spec do

exec "xcodebuild test -workspace #{workspace} -scheme #{project.app_scheme_name} -destination 'platform=macosx' -derivedDataPath #{DERIVED_DATA_PATH} | xcpretty -tc"

end