# # Rake / Cordova # task default: [:compile]

def find_or_create_file(name)

if File.exist?(name)
  print Paint["#{name} already exists! Overwrite? [y/N] ", :red]
  return unless STDIN.gets.chomp == 'y'
end
puts "Creating #{name}..."
FileUtils.cp(File.join(__dir__, '..', 'templates', name), '.')

end

task :greet do

puts Paint["Cordova Rake [#{env}] #{ENV['CORDOVA_PLATFORMS']}", :red]
puts Paint['        ----', :red]

end

desc 'Setup env for development' task :setup do

puts Paint['Installing NPM stuff...', :blue]
sh 'npm -g install phonegap cordova coffee-script '
sh 'npm -g install ios-deploy ios-sim ' if RUBY_PLATFORM =~ /darwin/
puts Paint['Installing GEM stuff...', :red]
find_or_create_file 'Gemfile'
sh 'bundle update'

end

task :report do

puts Paint['----', :red]
puts Paint["Rake done! #{format('%.2f', Time.now - START)}s", :black]

end

desc 'Phonegap Dev App, optional: port.' task :serve do

port = ARGV.last.to_i
port = 4000 if port.zero?
sh "phonegap serve -p #{port}"

end

desc 'Prepare & Ripple emulate' task :ripple do

sh 'cordova prepare'
sh 'ripple emulate'

end

desc 'Prepare & Ripple emulate' task :guard do

find_or_create_file('Guardfile')

end

namespace :emulate do

desc 'Run on Android emulator'
task :android do
  sh 'cordova build android'
  sh "cordova emulate android --target #{ARGV[1]}"
end
task android: :compile

desc 'Run on iOS emulator'
task :ios do
  sh 'cordova build ios'
  sh 'cordova emulate ios'
end
task ios: :compile

end

namespace :run do

desc 'Run on Android device or emulator'
task :android do
  sh 'cordova build android'
  sh 'cordova run android'
end
task android: :compile

desc 'Run on iOS plugged device or emulator'
task :ios do
  sh 'cordova build ios'
  sh 'cordova run ios --device'
end
task ios: :compile

end