namespace :submodules do desc "Check the status of the project's submodules" task :check => :environment do commit_info = `git submodule status` sha, repo, branch = commit_info.split(' ') case sha[0,1] when '+' $stderr.puts "Error: Currently checked out submodule commit for #{repo}" $stderr.puts "does not match the commit expected by this version of Alaveteli." $stderr.puts "You can update it with 'git submodule update'." exit(1) when '-' $stderr.puts "Error: Submodule #{repo} needs to be initialized." $stderr.puts "You can do this by running 'git submodule update --init'." exit(1) when 'U' $stderr.puts "Error: Submodule #{repo} has merge conflicts." $stderr.puts "You'll need to resolve these to run Alaveteli." exit(1) else exit(0) end end end