File regenerate_files.rb of Package rubygem-libv8

#!/usr/bin/env ruby

require 'fileutils'

version = ARGV[0]

open('libv8-' + version + '.gemspec') do |gemspec|
  open('libv8-' + version + '.gemspec.tmp', 'w:UTF-8') do |tmp|
    gemspec.each_line do |l|
      tmp.write l unless l.index('s.files')
    end
  end
end

builddir = Dir.glob(ENV['RPM_BUILD_DIR'] + '/*')[0]
s_files = []

Dir.glob(builddir + '/**/{*,.*}') do |f|
  unless File.directory?(f)
    if File.symlink? f
      link = File.readlink(f)
      abslink = File.expand_path(File.join(File.dirname(f), link))
      if File.exist? abslink
        FileUtils.rm_rf f
        FileUtils.copy(abslink, f)
        s_files << f.gsub(builddir + '/', '')
      else
        puts "#{f}'s symlink #{link}, absolute path #{abslink} doesn't exist"
      end
    else
      s_files << f.gsub(builddir + '/', '')
    end
  end
end

str = 's.files = ['

s_files.each do |s|
  str += "\"#{s}\","
end

str = str.gsub(/\,$/, ']').force_encoding('utf-8')

open('libv8-' + version + '.gemspec.tmp') do |tmp|
  open('libv8-' + version + '.gemspec.new', 'w:UTF-8') do |gemspec|
    tmp.each_line do |l|
      gemspec.write l
      gemspec.write str if l.index('s.summary')
    end
  end
end

FileUtils.mv 'libv8-' + version + '.gemspec.new', 'libv8-' + version + '.gemspec'
openSUSE Build Service is sponsored by