Files
textmate/bin/extract_changes
2021-02-15 16:01:50 +01:00

37 lines
964 B
Ruby
Executable File

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -w
require 'optparse'
outfile = nil
version = nil
OptionParser.new do |opts|
opts.banner = "Usage: #{File.basename(__FILE__)} [options]"
opts.on_tail('-h', '--help', 'Show this message.') { puts opts; exit }
opts.on("-o", "--output FILE", "Defaults to stdout.") do |file|
outfile = file unless file == '-'
end
opts.on("-v", "--version NUMBER", "Version number section to extract.") do |arg|
version = arg
end
end.parse!
begin
io = (outfile ? open(outfile, 'w') : STDOUT)
echo = false
while line = ARGF.gets
if line =~ /^#+ .* \(v(.*)\)/
return if echo
echo = true if version.nil? || version == $1
end
io << line if echo
end
abort (version ? "Unable to find changes for version #{version}." : "Unable to find changes.") unless echo
rescue Errno::ENOENT => e
abort "Unable to open output file: #{outfile || 'stdout'}: #{e}"
end