ff43d7344da046bf5f5051daa101638323d4f3fd
[mono.git] / acceptance-tests / versions.rb
1 #!/usr/bin/env ruby
2
3 require 'optparse'
4 require 'json'
5
6 def find_module(submodules, name)
7   mod = submodules.find { |m| m['name'] == name }
8   if mod == nil
9     # FIXME:
10     puts "Not found"
11     exit 1
12   end
13   return mod
14 end
15   
16 if ARGV.length < 1 then
17   puts "Usage: versions.rb <command>"
18   exit(1)
19 end
20
21 command = ARGV[0]
22
23 submodules = JSON.parse(File.read("SUBMODULES.json"))
24
25 case command
26 when "get-rev"
27   mod = find_module(submodules, ARGV[1])
28   puts mod['rev']
29 when "get-url"
30   mod = find_module(submodules, ARGV[1])
31   puts mod['url']
32 when "get-dir"
33   mod = find_module(submodules, ARGV[1])
34   puts mod['directory']
35 when "get-remote-branch"
36   mod = find_module(submodules, ARGV[1])
37   puts mod['remote-branch']
38 when "set-rev"
39   mod = find_module(submodules, ARGV[1])
40   mod['rev'] = ARGV[2]
41   f = File.new("SUBMODULES.json", "w")
42   f.write(JSON.pretty_generate(submodules))
43   f.close()
44 when "set-branch"
45   mod = find_module(submodules, ARGV[1])
46   mod['branch'] = ARGV[2]
47   f = File.new("SUBMODULES.json", "w")
48   f.write(JSON.pretty_generate(submodules))
49   f.close()
50 when "set-remote-branch"
51   mod = find_module(submodules, ARGV[1])
52   mod['remote-branch'] = ARGV[2]
53   f = File.new("SUBMODULES.json", "w")
54   f.write(JSON.pretty_generate(submodules))
55   f.close()
56 when "cat"
57   puts JSON.pretty_generate(submodules)
58 else
59   puts "Unknown command '#{command}'."
60   exit 1
61 end