diff --git a/script/gemspec b/script/gemspec new file mode 100755 index 00000000..ca75cbfa --- /dev/null +++ b/script/gemspec @@ -0,0 +1,29 @@ +#!/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}" +