forked from shoes/shoes-deprecated
/
cache.rb
55 lines (51 loc) · 1.55 KB
/
cache.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
require 'fileutils'
include FileUtils
# locate ~/.shoes
require 'tmpdir'
lib_dir = nil
homes = []
homes << [ENV['HOME'], File.join( ENV['HOME'], '.shoes' )] if ENV['HOME']
homes << [ENV['APPDATA'], File.join( ENV['APPDATA'], 'Shoes' )] if ENV['APPDATA']
homes.each do |home_top, home_dir|
next unless home_top
if File.exists? home_top
lib_dir = home_dir
break
end
end
LIB_DIR = lib_dir || File.join(Dir::tmpdir, "shoes")
LIB_DIR.gsub! /\\/, '/'
SITE_LIB_DIR = File.join(LIB_DIR, '+lib')
GEM_DIR = File.join(LIB_DIR, '+gem')
CACHE_DIR = File.join(LIB_DIR, '+cache')
mkdir_p(CACHE_DIR)
$:.unshift SITE_LIB_DIR
$:.unshift GEM_DIR
ENV['GEM_HOME'] = GEM_DIR
require 'rbconfig'
SHOES_RUBY_ARCH = RbConfig::CONFIG['arch']
config = {
'ruby_install_name' => "shoes --ruby",
'RUBY_INSTALL_NAME' => "shoes --ruby",
'prefix' => "#{DIR}",
'bindir' => "#{DIR}",
'rubylibdir' => "#{DIR}/ruby/lib",
'datarootdir' => "#{DIR}/share",
'dvidir' => "#{DIR}/doc/${PACKAGE}",
'psdir' => "#{DIR}/doc/${PACKAGE}",
'htmldir' => "#{DIR}/doc/${PACKAGE}",
'docdir' => "#{DIR}/doc/${PACKAGE}",
'archdir' => "#{DIR}/ruby/lib/#{SHOES_RUBY_ARCH}",
'sitedir' => SITE_LIB_DIR,
'sitelibdir' => SITE_LIB_DIR,
'sitearchdir' => "#{SITE_LIB_DIR}/#{SHOES_RUBY_ARCH}",
'LIBRUBYARG_STATIC' => "",
'libdir' => "#{DIR}",
'LDFLAGS' => "-L. -L#{DIR}"
}
RbConfig::CONFIG.merge! config
RbConfig::MAKEFILE_CONFIG.merge! config
GEM_CENTRAL_DIR = File.join(DIR, 'ruby/gems/' + RbConfig::CONFIG['ruby_version'])
Dir[GEM_CENTRAL_DIR + "/gems/*"].each do |gdir|
$: << "#{gdir}/lib"
end