<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,2 +1,2 @@
 $:.unshift(File.dirname(__FILE__))
-#require 'log4r'
+# require 'log4r'</diff>
      <filename>bootstrap/development/opals/sources/log4r-0.0.0/opal_init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,2 +1,3 @@
 $:.unshift(File.join(File.dirname(__FILE__),'lib'))
+#require 'rake'
 </diff>
      <filename>bootstrap/development/opals/sources/rake-0.0.0/opal_init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,2 +1,3 @@
 rspec_lib_lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'lib/lib'))
 $:.unshift(rspec_lib_lib_dir)
+#require 'spec'
\ No newline at end of file</diff>
      <filename>bootstrap/development/opals/sources/rspec-0.0.0/opal_init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1,2 @@
 $:.unshift(File.join(File.dirname(__FILE__),'lib'))
+# require 'yard'
\ No newline at end of file</diff>
      <filename>bootstrap/development/opals/sources/yard-0.0.0/opal_init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -178,6 +178,24 @@ module Opal
       end
     end
     
+    # ##
+    # # Check to see whether we're in bootstrap mode
+    # #
+    # # @param [Hash] options Options hash
+    # # @return [boolean] true if in bootstrap mode, false otherwise
+    # def self.bootstrap_mode?(options = {})
+    #   bootstrap_mode = false
+    #   Dir.chdir(options[:working_dir]) do |working_dir|
+    # 
+    #     require 'initialization/configuration'
+    #     
+    #     boostrap_unpack_dir = File.basename(Opal::Configuration.bootstrap_opals_tmp_directory)
+    #     zip_file_name = &quot;#{boostrap_unpack_dir}.zip&quot;
+    #     bootstrap_mode = true if File.exists?(zip_file_name)
+    #   end
+    #   return bootstrap_mode
+    # end
+    # 
     ##
     # Install bootstrap opals if present
     #
@@ -192,6 +210,7 @@ module Opal
         boostrap_unpack_dir = File.basename(Opal::Configuration.bootstrap_opals_tmp_directory)
         zip_file_name = &quot;#{boostrap_unpack_dir}.zip&quot;
 
+        opal_logger.debug(&quot;Opal::Install.install_bootstrap_opals Checking for #{zip_file_name} in #{working_dir}&quot;)
         if File.exists?(zip_file_name)
           cmd = &quot;unzip #{zip_file_name}&quot;
           opal_logger.debug(&quot;Opal::Install.install_bootstrap_opals \&quot;#{cmd}\&quot;&quot;)
@@ -202,7 +221,8 @@ module Opal
               install_bootstrap_opal(bootstrap_zip, options)
             end
           end
-        
+          # Install bootstrap indicator for Kernel.opal
+          install_bootstrap_indicator(options)
         end
       end
     end
@@ -230,13 +250,34 @@ module Opal
         FileUtils.cp_r(source_dir,File.join(options[:install_dir],'/opals/opals'))
         opal_logger.debug(&quot;Opal::Install.install_bootstrap_opals copying \&quot;#{source_dir}\&quot; to \&quot;#{target_dir}\&quot;&quot;)
         
-        if File.exists?(File.join(target_dir,'opal_init.rb'))
-          require File.join(target_dir,'opal_init')
-        end
+        # if File.exists?(File.join(target_dir,'opal_init.rb'))
+        #   require File.join(target_dir,'opal_init')
+        # end
 
       end
     end
 
+    ##
+    # Install bootstrap indicator for Kernel.opal
+    #
+    # @param [Hash] options Options hash
+    #
+    def self.install_bootstrap_indicator(options = {})
+      
+      
+      # rubyopals_install_location = File.join(options[:working_dir],'rubyopals_install_location.rb')
+      # File.open(rubyopals_install_location,'w+') do |file|
+      #   file.puts &quot;RUBYOPALS_BASE_DIR = \'#{install_dir}\'&quot;
+      # end
+      #    
+      rubyopals_hook_install_dir = Config::CONFIG[&quot;sitedir&quot;]
+      
+      bootstrap_indicator_file = File.join(rubyopals_hook_install_dir,'rubyopals_bootstrap.rb') 
+      File.open(bootstrap_indicator_file,'w+') do |file|
+        file.puts &quot;RUBYOPALS_BOOTSTRAP_MODE = true &quot;
+      end
+      
+    end
     
   end
 end</diff>
      <filename>lib/install/installer/install_rubyopals</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1 @@
 $:.unshift(File.join(File.dirname(__FILE__),'lib'))
-
-# Special case for the RubyOpal opal - require everything
-# require 'opals'
-</diff>
      <filename>lib/install/installer/opal_init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,23 +10,74 @@
 #CHANGEME Add logging
 puts &quot;Loading RubyOpals Kernel extension&quot;
 
+module Opal
+  module Logger
+    DEFAULT_LOG_DIR = &quot;/var/tmp&quot;
+  end
+end
 module Kernel
   
 
   ##
-  # 
+  # Load an opal
+  #
+  # @param [String] name Opal Name
+  # @version [String] version Opal Version
+  # @options [Hash] options Options hash
+  #
   def opal(name,version = nil,options = {})
 
     unless defined?(RUBYOPALS_BASE_DIR)
       file_name = File.expand_path(File.join(File.dirname(__FILE__), &quot;./rubyopals_install_location.rb&quot;))
       require file_name
     end
-
+    
+    unless defined?(RUBYOPALS_BOOTSTRAP_MODE)
+      file_name = File.expand_path(File.join(File.dirname(__FILE__), &quot;./rubyopals_bootstrap.rb&quot;))
+      if File.exists?(file_name)
+        require file_name
+      else
+        Kernel.const_set('RUBYOPALS_BOOTSTRAP_MODE',false)
+      end
+    end
+    
     #CHANGEME Add logging
     puts &quot;opal: rubyopals installed in #{RUBYOPALS_BASE_DIR}&quot; 
-    puts &quot;opal: #{name} #{version ? version.to_s : ''} #{options.inspect}&quot;
+    version = version ? version.to_s : '0.0.0'
+    puts &quot;opal: #{name} #{version ? version.to_s : '0.0.0'} #{options.inspect}&quot;
+    opals_dir = File.join(RUBYOPALS_BASE_DIR,'opals','opals')
+    opal_init = File.join(opals_dir,&quot;#{name}-#{version}&quot;, 'opal_init')
+    if File.exists?(&quot;#{opal_init}.rb&quot;)
+      require opal_init
+    end
+    # Now we can require the opal itself
+    require translate_opal_name(name)
+
   end
   
+  private
+  
+  ##
+  # Translate opal names -&gt; require names
+  #
+  # Only needed in bootstrap mode
+  #
+  # @param [String] opal_name
+  # @return [String] require_name
+  #
+  def translate_opal_name(opal_name)
+    if RUBYOPALS_BOOTSTRAP_MODE
+      translation_table = {'opal' =&gt; 'opals', 'rspec' =&gt; 'spec'}
+      require_name = translation_table[opal_name]
+      if require_name 
+        return require_name
+      else
+        return opal_name
+      end
+    else
+      return opal_name
+    end
+  end
 end
   
   
\ No newline at end of file</diff>
      <filename>lib/install/installer/rubyopals.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9e8a1910514beb17d84675e9cb135da192c0d4d2</id>
    </parent>
  </parents>
  <author>
    <name>Tracy Flynn</name>
    <email>info@rubyopals.org</email>
  </author>
  <url>http://github.com/tflynn/rubyopals/commit/da167a46c50e3f381c813531cce6ce2768c76952</url>
  <id>da167a46c50e3f381c813531cce6ce2768c76952</id>
  <committed-date>2008-07-08T02:31:05-07:00</committed-date>
  <authored-date>2008-07-08T02:31:05-07:00</authored-date>
  <message>Opal extension working for bootstrap opals - libraries only - no binaries

Lookup to substitute for opalspec processing
No dependencies</message>
  <tree>1c55e1a85905817750ff6ddf78e00b745da86fc9</tree>
  <committer>
    <name>Tracy Flynn</name>
    <email>info@rubyopals.org</email>
  </committer>
</commit>
