diff options
Diffstat (limited to 'nacl/package.rb')
-rw-r--r-- | nacl/package.rb | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/nacl/package.rb b/nacl/package.rb deleted file mode 100644 index 9ba95888c4..0000000000 --- a/nacl/package.rb +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/ruby -# Copyright:: Copyright 2012 Google Inc. -# License:: All Rights Reserved. -# Original Author:: Yugui Sonoda (mailto:yugui@google.com) -# -# Generates a runnable package of the pepper API example. - -require File.join(File.dirname(__FILE__), 'nacl-config') -require 'json' -require 'find' -require 'fileutils' - -include NaClConfig - -class Installation - include NaClConfig - - SRC_DIRS = [ - Dir.pwd, - HOST_LIB, - NACL_LIB, - ] - - def initialize(destdir) - @destdir = destdir - @manifest = { - "files" => {} - } - ruby_libs.each do |path| - raise "Collision of #{path}" if @manifest['files'].key? path - @manifest['files'][path] = { - ARCH => { - "url" => path - } - } - if path[/\.so$/] - alternate_path = path.gsub('/', "_") - raise "Collision of #{alternate_path}" if @manifest['files'].key? alternate_path - @manifest['files'][alternate_path] = { - ARCH => { - "url" => path - } - } - end - end - end - - def manifest - @manifest.dup - end - - def install_program(basename) - do_install_binary(basename, File.join(@destdir, "bin", ARCH)) - @manifest["program"] = { - ARCH => { - "url" => File.join("bin", ARCH, basename) - } - } - end - - def install_library(name, basename) - do_install_binary(basename, File.join(@destdir, "lib", ARCH)) - @manifest["files"][name] = { - ARCH => { - "url" => File.join("lib", ARCH, basename) - } - } - end - - private - def do_install_binary(basename, dest_dir) - full_path = nil - catch(:found) { - SRC_DIRS.each do |path| - full_path = File.join(path, basename) - if File.exist? full_path - throw :found - end - end - raise Errno::ENOENT, "No such file to install: %s" % basename - } - FileUtils.mkdir_p dest_dir - system("#{INSTALL_PROGRAM} #{full_path} #{dest_dir}") - end - - def ruby_libs - Find.find(RbConfig::CONFIG['rubylibdir']).select{|path| File.file?(path) }.map{|path| path.sub("#{@destdir}/", "") } - end -end - -def install(destdir) - inst = Installation.new(destdir) - manifest = JSON.parse(File.read("pepper-ruby.nmf")) - - program = File.basename(manifest['program'][ARCH]['url']) - inst.install_program(program) - - manifest['files'].each do |name, attr| - inst.install_library(name, File.basename(attr[ARCH]["url"])) - end - - File.open(File.join(destdir, "ruby.nmf"), "w") {|f| - f.puts JSON.pretty_generate(inst.manifest) - } -end - -def main - install(ARGV[0]) -end - -if __FILE__ == $0 - main() -end |