Improving the handling of missing dependencies.
[arvados.git] / tasks / gem.rake
1 require 'rake/gempackagetask'
2
3 namespace :gem do
4   GEM_SPEC = Gem::Specification.new do |s|
5     unless s.respond_to?(:add_development_dependency)
6       puts 'The gem spec requires a newer version of RubyGems.'
7       exit(1)
8     end
9
10     s.name = PKG_NAME
11     s.version = PKG_VERSION
12     s.summary = PKG_SUMMARY
13     s.description = PKG_DESCRIPTION
14
15     s.files = PKG_FILES.to_a
16     s.executables << 'google-api'
17
18     s.has_rdoc = true
19     s.extra_rdoc_files = %w( README )
20     s.rdoc_options.concat ['--main',  'README']
21
22     s.add_runtime_dependency('signet', '>= 0.1.3')
23     s.add_runtime_dependency('addressable', '>= 2.2.2')
24     s.add_runtime_dependency('httpadapter', '>= 0.2.0')
25     s.add_runtime_dependency('json', '>= 1.1.9')
26     s.add_runtime_dependency('extlib', '>= 0.9.15')
27
28     s.add_development_dependency('rack', '= 1.2.0')
29     s.add_development_dependency('sinatra', '>= 1.0')
30     s.add_development_dependency('liquid', '>= 2.2.2')
31     s.add_development_dependency('rake', '>= 0.7.3')
32     s.add_development_dependency('rspec', '~> 1.2.9')
33     s.add_development_dependency('launchy', '>= 0.3.2')
34     s.add_development_dependency('diff-lcs', '>= 1.1.2')
35
36     s.require_path = 'lib'
37
38     s.homepage = PKG_HOMEPAGE
39   end
40
41   Rake::GemPackageTask.new(GEM_SPEC) do |p|
42     p.gem_spec = GEM_SPEC
43     p.need_tar = true
44     p.need_zip = true
45   end
46
47   desc 'Show information about the gem'
48   task :debug do
49     puts GEM_SPEC.to_ruby
50   end
51
52   desc 'Install the gem'
53   task :install => ['clobber', 'gem:package'] do
54     sh "#{SUDO} gem install --local pkg/#{GEM_SPEC.full_name}"
55   end
56
57   desc 'Uninstall the gem'
58   task :uninstall do
59     installed_list = Gem.source_index.find_name(PKG_NAME)
60     if installed_list &&
61         (installed_list.collect { |s| s.version.to_s}.include?(PKG_VERSION))
62       sh(
63         "#{SUDO} gem uninstall --version '#{PKG_VERSION}' " +
64         "--ignore-dependencies --executables #{PKG_NAME}"
65       )
66     end
67   end
68
69   desc 'Reinstall the gem'
70   task :reinstall => [:uninstall, :install]
71 end
72
73 desc 'Alias to gem:package'
74 task 'gem' => 'gem:package'
75
76 task 'clobber' => ['gem:clobber_package']