aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tasks/submodules.rake
blob: 426192713540a3e366c2e007131494431a95e81a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
namespace :submodules do

    desc "Check the status of the project's submodules"
    task :check => :environment do
        commit_info = `git submodule status commonlib`
        case commit_info[0,1]
        when '+'
            $stderr.puts "Error: Currently checked out submodule commit for commonlib"
            $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 commonlib needs to be initialized."
            $stderr.puts "You can do this by running 'git submodule update --init'."
            exit(1)
        when 'U'
            $stderr.puts "Error: Submodule commonlib has merge conflicts."
            $stderr.puts "You'll need to resolve these to run Alaveteli."
            exit(1)
        when ' '
            exit(0)
        else
            raise "Unexpected status character in response to 'git submodule status commonlib': #{commit_info[0,1]}"
        end
    end

end