(Not documented)
# File rumix/application.rb, line 26 def run(config, log_io = $stderr, &block) log_io.puts("---------------\nRumix Installer\n---------------\ndest : \#{config.dest_dir}\next : \#{config.ext_dest_dir}\n") @maked_path_list.clear # インストール先ディレクトリを作成 mkpath(config, log_io, config.dest_dir) # レジストリに情報を書き込む reg = Rumix::Registry.load reg.install_path = config.dest_dir.gsub('/', '\\') reg.store or raise 'failure to store registry' # アンインストーラのインストール block.call(:on_uninstaller_install_start) if block install_from_zip(config, log_io, 'uninstaller.zip', config.dest_dir, &block) block.call(:on_uninstaller_install_complete) if block # rubyのインストール block.call(:on_ruby_install_start) if block if config.ruby_type then install_from_zip(config, log_io, config.ruby_src_zip_name, File.join(config.dest_dir, 'ruby'), &block) end block.call(:on_ruby_install_complete) if block # 外部ライブラリのインストール block.call(:on_ext_install_start) if block if config.ext_dest_dir then install_from_zip(config, log_io, 'ext.zip', config.ext_dest_dir, &block) end block.call(:on_ext_install_complete) if block # リファレンスのインストール block.call(:on_man_install_start) if block case config.man_type when :new_chm case config.ruby_type when Config::RUBY_191 install_from_zip(config, log_io, 'rubyman-newchm-191.zip', config.dest_dir, &block) when Config::RUBY_18 install_from_zip(config, log_io, 'rubyman-newchm-18.zip', config.dest_dir, &block) end when :chm install_from_zip(config, log_io, 'rubyman-chm.zip', config.dest_dir, &block) when :html install_from_zip(config, log_io, 'rubyman-html.zip', File.join(config.dest_dir, 'rubymanjp'), &block) end block.call(:on_man_install_complete) if block # シェルのインストール block.call(:on_shell_install_start) if block case config.shell_type when :nyacus install_from_zip(config, log_io, 'nyacus.zip', config.dest_dir, &block) unless File.exist?(File.join(config.dest_dir, '_nya')) then install_from_zip(config, log_io, '_nya.zip', config.dest_dir, &block) end when :nyados install_from_zip(config, log_io, 'nyados.zip', config.dest_dir, &block) unless File.exist?(File.join(config.dest_dir, '_nya')) then install_from_zip(config, log_io, '_nya.zip', config.dest_dir, &block) end end block.call(:on_shell_install_complete) if block # 関連ツールのインストール if config.installing_tool_ids.include?(:rubygems) then block.call(:on_tool_install_start, [:rubygems]) if block install_tool(config, log_io, 'rubygems', 'setup.rb') block.call(:on_tool_install_complete, [:rubygems]) if block end if config.installing_tool_ids.include?(:rake) then block.call(:on_tool_install_start, [:rake]) if block install_tool(config, log_io, 'rake', 'install.rb') # rake.bat を作成(なぜか rake のインストーラは作成をやってくれない) cmd_dest = File.join(config.dest_dir, 'ruby/bin/rake.bat') original_cmd = File.join(config.dest_dir, 'ruby/bin/rake.rb') open(cmd_dest, 'w'){|f| f.puts("@ECHO OFF\nIF NOT \"%~f0\" == \"~f0\" GOTO :WinNT\n@\"ruby.exe\" \"\#{original_cmd}\" %1 %2 %3 %4 %5 %6 %7 %8 %9\nGOTO :EOF\n:WinNT\n@\"ruby.exe\" \"%~dpn0.rb\" %*\n") log_io.puts "#{cmd_dest} maked." } block.call(:on_tool_install_complete, [:rake]) if block end if config.installing_tool_ids.include?(:exerb) then block.call(:on_tool_install_start, [:exerb]) if block install_tool(config, log_io, 'exerb', 'setup.rb') block.call(:on_tool_install_complete, [:exerb]) if block end # 環境変数PATHの追加 if config.add_path_env? then block.call(:on_path_env_add_start) if block shell = WIN32OLE.new('Wscript.Shell') ruby_bin_dir = File.join(config.dest_dir, 'ruby/bin') paths = shell.Environment.item('PATH').split(';') unless paths.include?(ruby_bin_dir) then paths << ruby_bin_dir.gsub('/', '\\') new_path = paths.join(';') log_io.puts "old PATH = #{shell.Environment.item('PATH')}" log_io.puts "new PATH = #{new_path}" if config.real_operating? then shell.Environment.setproperty('item', 'PATH', new_path) end end block.call(:on_path_env_add_complete) if block end # スタートメニューにRumix追加 if config.add_start_menu? then block.call(:on_start_menu_add_start) if block dir_path = Rumix.start_menu_dir_path #cd(config, log_io, dir_path) do # Dir.glob('**/*.lnk') do |path| # remove_file(config, log_io, path) # end #end mkpath(config, log_io, dir_path) create_shortcut(config, log_io, shell, dir_path, 'ruby/irb - Interactive Ruby Console', 'ruby/bin/irb.bat') case config.shell_type when :nyacus create_shortcut(config, log_io, shell, dir_path, 'NYACUS(コマンドラインシェル)', 'NYACUS.exe') when :nyados create_shortcut(config, log_io, shell, dir_path, 'NYADOS(コマンドラインシェル)', 'NYADOS.exe', 'IconLocation' => File.join(config.dest_dir, 'greencat.ico')) end case config.man_type when :new_chm create_shortcut(config, log_io, shell, dir_path, 'Rubyリファレンスマニュアル', 'ruby-refm.chm') when :chm create_shortcut(config, log_io, shell, dir_path, 'Rubyリファレンスマニュアル', 'rubymanjp.chm') when :html create_shortcut(config, log_io, shell, dir_path, 'Rubyリファレンスマニュアル', 'rubymanjp/index.html') end create_shortcut(config, log_io, shell, dir_path, 'Rumixのアンインストール', 'rumix_uninstall.exe') block.call(:on_start_menu_add_complete) if block end block.call(:on_complete) if block end
Disabled; run with $DEBUG to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.