faraday/script/gemspec
2012-12-28 01:43:45 -07:00

30 lines
857 B
Ruby
Executable File

#!/usr/bin/env ruby
require File.expand_path("../ruby", __FILE__)
def replace_header(head, header_name)
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{MakeScript.send(header_name)}'"}
end
# read spec file and split out manifest section
spec = File.read(MakeScript.gemspec_file)
head, manifest, tail = spec.split(" # = MANIFEST =\n")
# replace name version and date
replace_header(head, :lib_name)
replace_header(head, :version)
files = `git ls-files`.
split("\n").
sort.
reject { |file| file =~ /^\./ }.
reject { |file| file =~ /^(rdoc|pkg)/ }.
map { |file| " #{file}" }.
join("\n")
# piece file back together and write
manifest = " s.files = %w[\n#{files}\n ]\n"
spec = [head, manifest, tail].join(" # = MANIFEST =\n")
File.open(MakeScript.gemspec_file, 'w') { |io| io.write(spec) }
puts "Updated #{MakeScript.gemspec_file}"