/
cc.gemspec
36 lines (27 loc) · 1.48 KB
/
cc.gemspec
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
29
30
31
32
33
34
35
36
# -*- encoding: utf-8 -*-
lib = File.expand_path('../',__FILE__)
lib_up = File.expand_path('../../', __FILE__)
$:.unshift lib unless $:.include?(lib)
$:.unshift lib_up unless $:.include?(lib_up)
require 'json'
ENV['GEM_PATH']=ENV['BUNDLE_INSTALL_PATH'] if ENV['BUNDLE_INSTALL_PATH']
ENV['GEM_HOME']=ENV['BUNDLE_INSTALL_PATH'] if ENV['BUNDLE_INSTALL_PATH']
name = File.split(lib)[-1]||""
raise ArgumentError, '', caller if name.empty?
@name=name
Gem.use_paths(ENV['BUNDLE_INSTALL_PATH'],[]) if ENV['BUNDLE_INSTALL_PATH']
Gem::Specification.new do |s|
md = JSON.parse(File.read(File.expand_path('../metadata.json', __FILE__)))
# Required attributes (gem build fails without these)
s.name = @name
s.version = md['version'] && !md['version'].empty? ? md['version'] : '0'
s.files = Dir.glob('**/*') #.map{|f| File.expand_path(f)}
s.summary = md['description'] ? md['description'] : "The Chef cookbook for #{s.name}"
# Optional attributes (gem build warning raised without these)
s.author = md['maintainer'] ? md['maintainer'] : 'No acknowledged maintainer'
s.description = md['long_description'] ? md['long_description'] : s.summary
s.email = md['maintainer_email'] ? md['maintainer_email'] : 'No acknowledged maintainer email'
s.homepage = 'http://www.opscode.com'
md['dependencies'].each { |k,v| s.add_dependency(k,v) };
s.post_install_message = "Installed Chef Cookbook #{s.name}\n#{s.description}"
end