diff --git a/bin/release b/bin/release index dd9dd06..3e86847 100755 --- a/bin/release +++ b/bin/release @@ -6,14 +6,14 @@ require 'erb' source = File.read('src/BSDSocket.s') -aminet_template = ERB.new(File.read("aminet.readme.erb")) +aminet_template = ERB.new(File.read('aminet.readme.erb')) capture_version = false version = nil source.lines.each do |line| if capture_version - version = line[/dc\.b "([^"]+)"/,1] + version = line[/dc\.b "([^"]+)"/, 1] break end @@ -31,51 +31,58 @@ project_name = 'BSDSocket-Extension' build_dir = File.join(build_base, project_name) FileUtils.rm_rf build_dir +FileUtils.rm_rf 'aminet' FileUtils.mkdir_p build_dir FileUtils.mkdir_p 'aminet' hackerbun_target = File.expand_path("dist/AMOSPro_BSDSocket_#{version}.lha") [ - "AMOSPro_BSDSocket.Lib", - "README.md", - "API.md", - "LICENSE", + 'AMOSPro_BSDSocket.Lib', + 'README.md', + 'API.md', + 'LICENSE' ].each do |file| target = "#{build_dir}/#{file}" FileUtils.mkdir_p File.dirname(target) FileUtils.cp file, target end -[ - "src", - "examples" +gitignores = File.readlines('.gitignore').map(&:strip) + +%w[ + src + examples ].each do |dir| FileUtils.cp_r dir, "#{build_dir}/#{dir}" + + Dir["#{build_dir}/#{dir}/**/*"].each do |file| + FileUtils.rm file if gitignores.any? { |gi| File.fnmatch(gi, file) } + end end -Dir["icons/**/*.info"].each do |info| - target = info.gsub("icons/", build_base + "/") +Dir['icons/**/*.info'].each do |info| + target = info.gsub('icons/', build_base + '/') FileUtils.mkdir_p File.dirname(target) FileUtils.cp info, target end Dir.chdir build_base do Open3.popen2e( - "jlha", "c", hackerbun_target, - *(Dir["*"])) do |stdin, stdout_and_stderr, wait_thr| - - Thread.new do - stdout_and_stderr.each { |l| puts l } - end - - stdin.close - - wait_thr.value + 'jlha', 'c', hackerbun_target, + *(Dir['*']) + ) do |stdin, stdout_and_stderr, wait_thr| + Thread.new do + stdout_and_stderr.each { |l| puts l } end + + stdin.close + + wait_thr.value + end end -FileUtils.cp hackerbun_target, "aminet/BSDSocket-Extension.lha" -File.open("aminet/BSDSocket-Extension.readme", "w") do |fh| +FileUtils.cp hackerbun_target, 'aminet/BSDSocket-Extension.lha' +File.open('aminet/BSDSocket-Extension.readme', 'w') do |fh| fh.puts aminet_template.result(binding) end