Class: Setup::Installer
Overview
Installer class handles the actual install procedure.
NOTE: This new version does not support per-directory hooks.
Defined Under Namespace
Classes: Shebang
Instance Attribute Summary
Attributes inherited from Base
#config, #force, #io, #project, #quiet, #trace, #trial
Instance Method Summary collapse
-
#install ⇒ Object
Install package.
-
#install_bin ⇒ Object
Install binaries (executables).
-
#install_data ⇒ Object
Install shared data.
-
#install_doc ⇒ Object
Install documentation.
-
#install_etc ⇒ Object
Install configuration.
-
#install_ext ⇒ Object
Install shared extension libraries.
-
#install_lib ⇒ Object
Install library files.
-
#install_man ⇒ Object
Install manpages.
- #install_prefix ⇒ Object
Methods inherited from Base
#bash, #force?, #force_remove_file, #initialize, #initialize_hooks, #quiet?, #remove_file, #rm_f, #rmdir, #rootdir, #ruby, #trace?, #trace_off, #trial?
Constructor Details
This class inherits a constructor from Setup::Base
Instance Method Details
#install ⇒ Object
Install package.
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/setup/installer.rb', line 18 def install Dir.chdir(rootdir) do install_bin install_ext install_lib install_data install_man install_doc install_etc prune_install_record end end |
#install_bin ⇒ Object
Install binaries (executables).
32 33 34 35 36 37 38 39 |
# File 'lib/setup/installer.rb', line 32 def install_bin return unless directory?('bin') report_transfer('bin', config.bindir) #io.puts "* bin -> #{config.bindir}" unless quiet? files = files('bin') install_files('bin', files, config.bindir, 0755) #install_shebang(files, config.bindir) end |
#install_data ⇒ Object
Install shared data.
66 67 68 69 70 71 72 |
# File 'lib/setup/installer.rb', line 66 def install_data return unless directory?('data') report_transfer('data', config.datadir) #io.puts "* data -> #{config.datadir}" unless quiet? files = files('data') install_files('data', files, config.datadir, 0644) end |
#install_doc ⇒ Object
Install documentation.
TODO: The use of the project name in the doc directory should be set during the config phase. Define a seperate config method for it.
95 96 97 98 99 100 101 102 103 104 |
# File 'lib/setup/installer.rb', line 95 def install_doc return unless config.doc? return unless directory?('doc') return unless project.name dir = File.join(config.docdir, "ruby-#{project.name}") report_transfer('doc', dir) #io.puts "* doc -> #{dir}" unless quiet? files = files('doc') install_files('doc', files, dir, 0644) end |
#install_etc ⇒ Object
Install configuration.
75 76 77 78 79 80 |
# File 'lib/setup/installer.rb', line 75 def install_etc return unless directory?('etc') report_transfer('etc', config.sysconfdir) files = files('etc') install_files('etc', files, config.sysconfdir, 0644) end |
#install_ext ⇒ Object
Install shared extension libraries.
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/setup/installer.rb', line 42 def install_ext return unless directory?('ext') report_transfer('ext', config.sodir) #io.puts "* ext -> #{config.sodir}" unless quiet? files = files('ext') files = select_dllext(files) #install_files('ext', files, config.sodir, 0555) files.each do |file| name = File.join(File.dirname(File.dirname(file)), File.basename(file)) dest = destination(config.sodir, name) install_file('ext', file, dest, 0555, install_prefix) end end |
#install_lib ⇒ Object
Install library files.
57 58 59 60 61 62 63 |
# File 'lib/setup/installer.rb', line 57 def install_lib return unless directory?('lib') report_transfer('lib', config.rbdir) #io.puts "* lib -> #{config.rbdir}" unless quiet? files = files('lib') install_files('lib', files, config.rbdir, 0644) end |
#install_man ⇒ Object
Install manpages.
83 84 85 86 87 88 |
# File 'lib/setup/installer.rb', line 83 def install_man return unless directory?('man') report_transfer('man', config.mandir) files = files('man') install_files('man', files, config.mandir, 0644) end |
#install_prefix ⇒ Object
12 13 14 |
# File 'lib/setup/installer.rb', line 12 def install_prefix config.install_prefix end |