scriptlandia-r 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/install.rb +135 -0
- data/lib/buildfile +59 -0
- data/lib/languages/ant/config.yaml +44 -0
- data/lib/languages/beanshell/config.yaml +6 -0
- data/lib/languages/clojure/config.yaml +7 -0
- data/lib/languages/extension_mapping.yaml +51 -0
- data/lib/languages/fan/config.yaml +8 -0
- data/lib/languages/fortress/config.yaml +11 -0
- data/lib/languages/groovy/config.yaml +7 -0
- data/lib/languages/jaskell/config.yaml +9 -0
- data/lib/languages/javascript/config.yaml +6 -0
- data/lib/languages/jawk/config.yaml +9 -0
- data/lib/languages/jruby/config.yaml +6 -0
- data/lib/languages/judo/config.yaml +7 -0
- data/lib/languages/jython/config.yaml +9 -0
- data/lib/languages/lolcode/config.yaml +6 -0
- data/lib/languages/pnuts/config.yaml +7 -0
- data/lib/languages/ptilde/config.yaml +8 -0
- data/lib/languages/scala/config.yaml +12 -0
- data/lib/languages/sleep/config.yaml +6 -0
- data/lib/languages/tcl/config.yaml +9 -0
- data/lib/languages/yoix/config.yaml +6 -0
- data/lib/scriptlandia.rb +105 -0
- data/lib/settings.yaml +33 -0
- data/setup.rb +135 -0
- metadata +97 -0
data/install.rb
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
#
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rbconfig'
|
4
|
+
require 'find'
|
5
|
+
require 'ftools'
|
6
|
+
require 'rake/gempackagetask'
|
7
|
+
|
8
|
+
include Config
|
9
|
+
|
10
|
+
def prepare
|
11
|
+
$bindir = CONFIG["bindir"]
|
12
|
+
|
13
|
+
$my_bindir = CONFIG['bindir']
|
14
|
+
|
15
|
+
unless File.writable? $my_bindir
|
16
|
+
$my_bindir = [ENV['HOME'], '.gem', 'ruby', CONFIG["MAJOR"]+"."+CONFIG["MINOR"], 'bin'].join(File::SEPARATOR)
|
17
|
+
end
|
18
|
+
|
19
|
+
$libdir = CONFIG["libdir"]
|
20
|
+
|
21
|
+
my_gems_path = [CONFIG['libdir'], 'ruby', 'gems'].join(File::SEPARATOR)
|
22
|
+
|
23
|
+
unless File.writable? my_gems_path
|
24
|
+
my_gems_path = [ENV['HOME'], '.gem', 'ruby'].join(File::SEPARATOR)
|
25
|
+
end
|
26
|
+
|
27
|
+
$ruby = CONFIG['ruby_install_name']
|
28
|
+
|
29
|
+
$spec = Gem::Specification.load('scriptlandia-r.gemspec')
|
30
|
+
|
31
|
+
$my_libdir = File.join(my_gems_path, CONFIG["MAJOR"]+"."+CONFIG["MINOR"],
|
32
|
+
'gems', $spec.name + '-' + $spec.version.to_s, 'lib')
|
33
|
+
end
|
34
|
+
|
35
|
+
def tmp_file
|
36
|
+
tmp_dir = nil
|
37
|
+
for t in [".", "/tmp", "c:/temp", $my_bindir]
|
38
|
+
stat = File.stat(t) rescue next
|
39
|
+
if stat.directory? and stat.writable?
|
40
|
+
tmp_dir = t
|
41
|
+
break
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
fail "Cannot find a temporary directory" unless tmp_dir
|
46
|
+
|
47
|
+
File.join(tmp_dir, "_tmp")
|
48
|
+
end
|
49
|
+
|
50
|
+
def install_file from_file, to_dir, to_file, settings
|
51
|
+
File.makedirs to_dir
|
52
|
+
|
53
|
+
#File::install(from_file, File.join(to_dir, to_file), 0755, true)
|
54
|
+
|
55
|
+
tmp = tmp_file()
|
56
|
+
|
57
|
+
File.open(from_file) do |ip|
|
58
|
+
File.open(tmp, "w") do |op|
|
59
|
+
|
60
|
+
op.write ip.read..gsub('C:/Ruby/ruby-1.8.7/bin/sl', $bindir + '/sl')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
File::install(tmp, to_file, 0755, true)
|
65
|
+
File::unlink(tmp)
|
66
|
+
end
|
67
|
+
|
68
|
+
def install_file_with_header(from_file, to_file, settings)
|
69
|
+
tmp = tmp_file()
|
70
|
+
|
71
|
+
File.open(from_file) do |ip|
|
72
|
+
File.open(tmp, "w") do |op|
|
73
|
+
ruby = File.join($bindir, $ruby)
|
74
|
+
op.puts "#!#{ruby} -w"
|
75
|
+
op.puts "name = '" + $spec.name + "'"
|
76
|
+
op.puts "version = '" + $spec.version.to_s + "'"
|
77
|
+
op.puts "ENV['JAVA_HOME'] = '" + settings['java_home'].chomp + "'"
|
78
|
+
|
79
|
+
op.write ip.read
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
File::install(tmp, to_file, 0755, true)
|
84
|
+
File::unlink(tmp)
|
85
|
+
end
|
86
|
+
|
87
|
+
def install_settings from_file, to_file
|
88
|
+
require 'yaml'
|
89
|
+
|
90
|
+
orig_settings_file_name = $my_libdir + "/settings.yaml"
|
91
|
+
|
92
|
+
if(File.exist? orig_settings_file_name)
|
93
|
+
settings = YAML::load File.open(orig_settings_file_name)
|
94
|
+
else
|
95
|
+
settings = YAML::load File.open(from_file)
|
96
|
+
end
|
97
|
+
|
98
|
+
orig_java_home = settings['java_home'].chomp
|
99
|
+
orig_repository_home = settings['repositories']['local'].chomp
|
100
|
+
|
101
|
+
puts 'Enter Java Home (' + orig_java_home + "):"
|
102
|
+
|
103
|
+
java_home = gets
|
104
|
+
|
105
|
+
if(java_home.chomp.empty?)
|
106
|
+
java_home = orig_java_home
|
107
|
+
end
|
108
|
+
|
109
|
+
puts 'Enter Repository Home (' + orig_repository_home + "):"
|
110
|
+
|
111
|
+
repository_home = gets
|
112
|
+
|
113
|
+
if(repository_home.chomp.empty?)
|
114
|
+
repository_home = orig_repository_home
|
115
|
+
end
|
116
|
+
|
117
|
+
settings = YAML::load File.open(from_file)
|
118
|
+
settings['java_home'] = java_home
|
119
|
+
settings['repositories']['local'] = repository_home
|
120
|
+
|
121
|
+
File.open( to_file, 'w' ) do |out|
|
122
|
+
YAML.dump(settings, out)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
prepare()
|
127
|
+
|
128
|
+
install_settings("lib/settings.yaml", $my_libdir + "/settings.yaml")
|
129
|
+
|
130
|
+
settings = YAML::load File.open($my_libdir + "/settings.yaml")
|
131
|
+
|
132
|
+
install_file("bin/sl.bat", $my_bindir, "sl.bat", settings) if CONFIG['host_os'] =~ /mswin/
|
133
|
+
|
134
|
+
install_file_with_header("bin/sl", $my_bindir + "/sl", settings)
|
135
|
+
|
data/lib/buildfile
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# buildfile
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
settings = YAML::load File.open(File.dirname(__FILE__) + '/settings.yaml')
|
6
|
+
|
7
|
+
ENV['JAVA_HOME'] = settings['java_home']
|
8
|
+
|
9
|
+
repositories.local = settings['repositories']['local']
|
10
|
+
|
11
|
+
settings['repositories']['remote'].each do |repository|
|
12
|
+
repositories.remote << repository
|
13
|
+
end
|
14
|
+
|
15
|
+
#options.proxy.http = ''
|
16
|
+
#options.proxy.exclude << '*.mycompany.com'
|
17
|
+
#options.proxy.exclude << 'localhost'
|
18
|
+
#ENV['http_proxy'] = ''
|
19
|
+
|
20
|
+
define 'buildr' do
|
21
|
+
def language_folder ext_mapping, ext
|
22
|
+
ext_mapping.each do |folder, extensions|
|
23
|
+
if folder == ext
|
24
|
+
return folder
|
25
|
+
end
|
26
|
+
|
27
|
+
if extensions.include?(ext)
|
28
|
+
return folder
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def build dep
|
34
|
+
extension = ENV['EXT']
|
35
|
+
|
36
|
+
if(extension == nil)
|
37
|
+
puts "Please specify language name or extension."
|
38
|
+
else
|
39
|
+
puts "ext: " + extension
|
40
|
+
|
41
|
+
ext_mapping = YAML::load File.open(File.dirname(__FILE__) + '/languages/extension_mapping.yaml')
|
42
|
+
|
43
|
+
language = language_folder(ext_mapping, extension)
|
44
|
+
|
45
|
+
puts "language: " + language.to_s
|
46
|
+
|
47
|
+
lang_config = YAML::load File.open(File.dirname(__FILE__) + '/languages/' + language + '/config.yaml')
|
48
|
+
|
49
|
+
puts 'Installing ' + language + ' language...'
|
50
|
+
|
51
|
+
lang_config['artifacts'].each do |name, a|
|
52
|
+
artifact(a).invoke
|
53
|
+
end
|
54
|
+
|
55
|
+
puts 'Language ' + language + ' installed.'
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
jvmargs:
|
2
|
+
|
3
|
+
artifacts:
|
4
|
+
bsh: bsh:bsh:jar:2.0b5
|
5
|
+
bcel: bcel:bcel:jar:5.1
|
6
|
+
bsf: bsf:bsf:jar:2.4.0
|
7
|
+
log4j: log4j:log4j:jar:1.2.13
|
8
|
+
oro: oro:oro:jar:2.0.8
|
9
|
+
regexp: regexp:regexp:jar:1.3
|
10
|
+
xml-resolver: xml-resolver:xml-resolver:jar:1.1
|
11
|
+
mail: javax.mail:mail:jar:1.4
|
12
|
+
activation: javax.activation:activation:jar:1.1
|
13
|
+
jdepend: jdepend:jdepend:jar:2.7
|
14
|
+
jsch: com.jcraft:jsch:jar:0.1.29
|
15
|
+
junit: junit:junit:jar:3.8.2
|
16
|
+
commons-logging-api: commons-logging:commons-logging-api:jar:1.0.4
|
17
|
+
commons-net: commons-net:commons-net:jar:1.4.0
|
18
|
+
|
19
|
+
ant: org.apache.ant:ant:jar:1.7.1
|
20
|
+
ant-apache-bcel: org.apache.ant:ant-apache-bcel:jar:1.7.1
|
21
|
+
ant-apache-bsf: org.apache.ant:ant-apache-bsf:jar:1.7.1
|
22
|
+
ant-apache-log4j: org.apache.ant:ant-apache-log4j:jar:1.7.1
|
23
|
+
ant-apache-oro: org.apache.ant:ant-apache-oro:jar:1.7.1
|
24
|
+
ant-apache-regexp: org.apache.ant:ant-apache-regexp:jar:1.7.1
|
25
|
+
ant-apache-resolver: org.apache.ant:ant-apache-resolver:jar:1.7.1
|
26
|
+
ant-commons-logging: org.apache.ant:ant-commons-logging:jar:1.7.1
|
27
|
+
ant-commons-net: org.apache.ant:ant-commons-net:jar:1.7.1
|
28
|
+
ant-javamail: org.apache.ant:ant-javamail:jar:1.7.1
|
29
|
+
ant-jdepend: org.apache.ant:ant-jdepend:jar:1.7.1
|
30
|
+
ant-jsch: org.apache.ant:ant-jsch:jar:1.7.1
|
31
|
+
ant-junit: org.apache.ant:ant-junit:jar:1.7.1
|
32
|
+
ant-launcher: org.apache.ant:ant-launcher:jar:1.7.1
|
33
|
+
ant-nodeps: org.apache.ant:ant-nodeps:jar:1.7.1
|
34
|
+
ant-swing: org.apache.ant:ant-swing:jar:1.7.1
|
35
|
+
ant-testutil: org.apache.ant:ant-testutil:jar:1.7.1
|
36
|
+
ant-trax: org.apache.ant:ant-trax:jar:1.7.1
|
37
|
+
ant-pack200: org.apache.ant:ant-pack200:jar:1.7.1
|
38
|
+
ant-apt: org.apache.ant:ant-apt:jar:1.7.1
|
39
|
+
ant-antlr: org.apache.ant:ant-antlr:jar:1.7.1
|
40
|
+
|
41
|
+
start_class: org.apache.tools.ant.Main
|
42
|
+
|
43
|
+
command_line:
|
44
|
+
['-f']
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# extension_mapping.yaml
|
2
|
+
|
3
|
+
ant: [ant, build.xml]
|
4
|
+
|
5
|
+
beanshell: [bsh]
|
6
|
+
|
7
|
+
class: [class]
|
8
|
+
|
9
|
+
clojure: [clj]
|
10
|
+
|
11
|
+
etl: [etl]
|
12
|
+
|
13
|
+
fan: [fan, pod]
|
14
|
+
|
15
|
+
fortress: [fss]
|
16
|
+
|
17
|
+
freemarker: [ftl, freemarker]
|
18
|
+
|
19
|
+
groovy: [groovy]
|
20
|
+
|
21
|
+
jaskell: [jsl, jaskell]
|
22
|
+
|
23
|
+
javascript: [js, javascript]
|
24
|
+
|
25
|
+
jawk: [jawk, awk]
|
26
|
+
|
27
|
+
jelly: [jelly]
|
28
|
+
|
29
|
+
judo: [judo]
|
30
|
+
|
31
|
+
jython: [py, python, jython]
|
32
|
+
|
33
|
+
lolcode: [lol, lcd]
|
34
|
+
|
35
|
+
maven: [mvn, maven, pom.xml]
|
36
|
+
|
37
|
+
pnuts: [pnut]
|
38
|
+
|
39
|
+
ptilde: [p7e, p7ei]
|
40
|
+
|
41
|
+
jruby: [rb, ruby]
|
42
|
+
|
43
|
+
scala: [scala]
|
44
|
+
|
45
|
+
sleep: [sl, sleep]
|
46
|
+
|
47
|
+
tcl: [tcl]
|
48
|
+
|
49
|
+
velocity: [vm, velocity]
|
50
|
+
|
51
|
+
yoix: [yx]
|
@@ -0,0 +1,11 @@
|
|
1
|
+
jvmargs:
|
2
|
+
|
3
|
+
artifacts:
|
4
|
+
fortress: com.sun.fortress:fortress:jar:588
|
5
|
+
fortress-lib: com.sun.fortress:fortress-lib:jar:588
|
6
|
+
xtc: xtc:xtc:jar:1.10.0
|
7
|
+
concurrent: concurrent:concurrent:jar:1.3.4
|
8
|
+
bcel: bcel:bcel:jar:5.2
|
9
|
+
plt: edu.rice:plt:jar:20070717-1913
|
10
|
+
|
11
|
+
start_class: com.sun.fortress.interpreter.drivers.fs
|
@@ -0,0 +1,9 @@
|
|
1
|
+
jvmargs:
|
2
|
+
['-Dpython.home=#{repositories.local}/jython/jython/2.2.1',
|
3
|
+
'-Dpython.cachedir=#{repositories.local}/jython/jython/2.2.1/cachedir']
|
4
|
+
|
5
|
+
artifacts:
|
6
|
+
jython: jython:jython:jar:2.2.1
|
7
|
+
jython-lib: jython:jython-lib:jar:2.2.1
|
8
|
+
|
9
|
+
start_class: org.python.util.jython
|
@@ -0,0 +1,12 @@
|
|
1
|
+
jvmargs:
|
2
|
+
|
3
|
+
artifacts:
|
4
|
+
scala-lirary: org.scala-lang:scala-library:jar:2.7.1
|
5
|
+
scala-compiler: org.scala-lang:scala-compiler:jar:2.7.1
|
6
|
+
scala-dbc: org.scala-lang:scala-dbc:jar:2.7.1
|
7
|
+
scala-decoder: org.scala-lang:scala-decoder:jar:2.7.1
|
8
|
+
|
9
|
+
start_class: scala.tools.nsc.MainGenericRunner
|
10
|
+
|
11
|
+
command_line:
|
12
|
+
['-nocompdaemon', '-howtorun:script']
|
data/lib/scriptlandia.rb
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
# scriptlandia.rb
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
require 'rubygems'
|
5
|
+
require 'rjb'
|
6
|
+
|
7
|
+
class String
|
8
|
+
def interpolate vars
|
9
|
+
s_i = self.dup
|
10
|
+
|
11
|
+
vars.each do |key, value|
|
12
|
+
regexp = Regexp.new('#\{' + key + '\}')
|
13
|
+
|
14
|
+
s_i.gsub! regexp, value
|
15
|
+
end
|
16
|
+
|
17
|
+
s_i
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
module Scriptlandia
|
23
|
+
class Launcher
|
24
|
+
def initialize
|
25
|
+
@settings = YAML::load File.open(File.dirname(__FILE__) + '/settings.yaml')
|
26
|
+
@ext_mapping = YAML::load File.open(File.dirname(__FILE__) + '/languages/extension_mapping.yaml')
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.extension name
|
30
|
+
name[name.rindex('.')+1, name.length]
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.language_folder ext_mapping, name
|
34
|
+
language_folder = nil
|
35
|
+
|
36
|
+
ext = extension(name)
|
37
|
+
|
38
|
+
ext_mapping.each do |folder, extensions|
|
39
|
+
if extensions.include?(ext) or extensions.include?(name)
|
40
|
+
language_folder = folder
|
41
|
+
break
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
language_folder
|
46
|
+
end
|
47
|
+
|
48
|
+
def launch
|
49
|
+
script_name = ARGV[0]
|
50
|
+
|
51
|
+
language = Launcher.language_folder(@ext_mapping, script_name)
|
52
|
+
|
53
|
+
if(language == nil)
|
54
|
+
puts "Unsupported language/extension: " + Launcher.extension(script_name)
|
55
|
+
else
|
56
|
+
lang_config = YAML::load File.open(File.dirname(__FILE__) + '/languages/' +
|
57
|
+
language + '/config.yaml')
|
58
|
+
|
59
|
+
ENV['JAVA_HOME'] = @settings['java_home']
|
60
|
+
local_repository = @settings['repositories']['local']
|
61
|
+
|
62
|
+
vars = {'repositories.local' => local_repository }
|
63
|
+
|
64
|
+
jvm_args = lang_config['jvmargs']
|
65
|
+
jvm_args = [] if jvm_args == nil
|
66
|
+
|
67
|
+
jvm_args = jvm_args.collect { |arg| arg.interpolate(vars) }
|
68
|
+
|
69
|
+
classpath = lang_config['classpath']
|
70
|
+
classpath = [] if classpath == nil
|
71
|
+
|
72
|
+
lang_config['artifacts'].each do |name, artifact|
|
73
|
+
group, id, type,version = artifact.split(':')
|
74
|
+
|
75
|
+
file_name = local_repository + '/' +
|
76
|
+
group.gsub('.', '/') + '/' +
|
77
|
+
id.gsub('.', '/') + '/' +
|
78
|
+
version + '/' +
|
79
|
+
id.gsub('.', '/') + '-' + version + '.' + type
|
80
|
+
|
81
|
+
unless File.exist? file_name
|
82
|
+
puts 'File ' + file_name + ' does not exists.'
|
83
|
+
else
|
84
|
+
classpath << file_name
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
pause = false
|
89
|
+
|
90
|
+
if(ARGV.include? '--wait')
|
91
|
+
ARGV.delete '--wait'
|
92
|
+
pause = true
|
93
|
+
end
|
94
|
+
|
95
|
+
Rjb::load(classpath.join(File::PATH_SEPARATOR), jvmargs = jvm_args)
|
96
|
+
|
97
|
+
ARGV[0, 0] = lang_config['command_line'] if lang_config['command_line']
|
98
|
+
|
99
|
+
Rjb::import(lang_config['start_class']).main(ARGV)
|
100
|
+
|
101
|
+
STDIN.gets if pause
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/lib/settings.yaml
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
java_home:
|
2
|
+
c:/Java/jdk1.5.0
|
3
|
+
|
4
|
+
repositories:
|
5
|
+
|
6
|
+
# customize user local maven2 repository location
|
7
|
+
local: c:/Work/maven-repository
|
8
|
+
|
9
|
+
# prefer the local or nearest mirrors
|
10
|
+
remote:
|
11
|
+
- file://c:/Work/maven-repository-accelerator
|
12
|
+
- http://scriptlandia-repository.googlecode.com/svn/trunk/languages
|
13
|
+
- http://scriptlandia-repository.googlecode.com/svn/trunk/tools
|
14
|
+
- http://repository.springsource.com/maven/bundles/release
|
15
|
+
- http://repository.springsource.com/maven/bundles/external
|
16
|
+
- http://repository.springsource.com/maven/libraries/release
|
17
|
+
- http://repository.springsource.com/maven/libraries/external
|
18
|
+
- http://repository.jboss.com/maven2
|
19
|
+
- http://repo.mergere.com/maven2
|
20
|
+
- http://repo1.maven.org/maven2
|
21
|
+
- http://repo1.maven.org/maven-spring
|
22
|
+
- http://dist.codehaus.org
|
23
|
+
- http://repository.codehaus.org
|
24
|
+
- http://download.java.net/maven/2
|
25
|
+
- https://maven-repository.dev.java.net/nonav/repository
|
26
|
+
- http://download.java.net/maven/2
|
27
|
+
- http://jyaml.sourceforge.net/m2-repo
|
28
|
+
- http://dist.codehaus.org/mule/dependencies/maven2
|
29
|
+
- http://scala-tools.org/repo-releases
|
30
|
+
|
31
|
+
#options:
|
32
|
+
# proxy:
|
33
|
+
# http: ''
|
data/setup.rb
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
#
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rbconfig'
|
4
|
+
require 'find'
|
5
|
+
require 'ftools'
|
6
|
+
require 'rake/gempackagetask'
|
7
|
+
|
8
|
+
include Config
|
9
|
+
|
10
|
+
def prepare
|
11
|
+
$bindir = CONFIG["bindir"]
|
12
|
+
|
13
|
+
$my_bindir = CONFIG['bindir']
|
14
|
+
|
15
|
+
unless File.writable? $my_bindir
|
16
|
+
$my_bindir = [ENV['HOME'], '.gem', 'ruby', CONFIG["MAJOR"]+"."+CONFIG["MINOR"], 'bin'].join(File::SEPARATOR)
|
17
|
+
end
|
18
|
+
|
19
|
+
$libdir = CONFIG["libdir"]
|
20
|
+
|
21
|
+
my_gems_path = [CONFIG['libdir'], 'ruby', 'gems'].join(File::SEPARATOR)
|
22
|
+
|
23
|
+
unless File.writable? my_gems_path
|
24
|
+
my_gems_path = [ENV['HOME'], '.gem', 'ruby'].join(File::SEPARATOR)
|
25
|
+
end
|
26
|
+
|
27
|
+
$ruby = CONFIG['ruby_install_name']
|
28
|
+
|
29
|
+
$spec = Gem::Specification.load('scriptlandia-r.gemspec')
|
30
|
+
|
31
|
+
$my_libdir = File.join(my_gems_path, CONFIG["MAJOR"]+"."+CONFIG["MINOR"],
|
32
|
+
'gems', $spec.name + '-' + $spec.version.to_s, 'lib')
|
33
|
+
end
|
34
|
+
|
35
|
+
def tmp_file
|
36
|
+
tmp_dir = nil
|
37
|
+
for t in [".", "/tmp", "c:/temp", $my_bindir]
|
38
|
+
stat = File.stat(t) rescue next
|
39
|
+
if stat.directory? and stat.writable?
|
40
|
+
tmp_dir = t
|
41
|
+
break
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
fail "Cannot find a temporary directory" unless tmp_dir
|
46
|
+
|
47
|
+
File.join(tmp_dir, "_tmp")
|
48
|
+
end
|
49
|
+
|
50
|
+
def install_file from_file, to_dir, to_file, settings
|
51
|
+
File.makedirs to_dir
|
52
|
+
|
53
|
+
#File::install(from_file, File.join(to_dir, to_file), 0755, true)
|
54
|
+
|
55
|
+
tmp = tmp_file()
|
56
|
+
|
57
|
+
File.open(from_file) do |ip|
|
58
|
+
File.open(tmp, "w") do |op|
|
59
|
+
|
60
|
+
op.write ip.read..gsub('C:/Ruby/ruby-1.8.7/bin/sl', $bindir + '/sl')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
File::install(tmp, to_file, 0755, true)
|
65
|
+
File::unlink(tmp)
|
66
|
+
end
|
67
|
+
|
68
|
+
def install_file_with_header(from_file, to_file, settings)
|
69
|
+
tmp = tmp_file()
|
70
|
+
|
71
|
+
File.open(from_file) do |ip|
|
72
|
+
File.open(tmp, "w") do |op|
|
73
|
+
ruby = File.join($bindir, $ruby)
|
74
|
+
op.puts "#!#{ruby} -w"
|
75
|
+
op.puts "name = '" + $spec.name + "'"
|
76
|
+
op.puts "version = '" + $spec.version.to_s + "'"
|
77
|
+
op.puts "ENV['JAVA_HOME'] = '" + settings['java_home'].chomp + "'"
|
78
|
+
|
79
|
+
op.write ip.read
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
File::install(tmp, to_file, 0755, true)
|
84
|
+
File::unlink(tmp)
|
85
|
+
end
|
86
|
+
|
87
|
+
def install_settings from_file, to_file
|
88
|
+
require 'yaml'
|
89
|
+
|
90
|
+
orig_settings_file_name = $my_libdir + "/settings.yaml"
|
91
|
+
|
92
|
+
if(File.exist? orig_settings_file_name)
|
93
|
+
settings = YAML::load File.open(orig_settings_file_name)
|
94
|
+
else
|
95
|
+
settings = YAML::load File.open(from_file)
|
96
|
+
end
|
97
|
+
|
98
|
+
orig_java_home = settings['java_home'].chomp
|
99
|
+
orig_repository_home = settings['repositories']['local'].chomp
|
100
|
+
|
101
|
+
puts 'Enter Java Home (' + orig_java_home + "):"
|
102
|
+
|
103
|
+
java_home = gets
|
104
|
+
|
105
|
+
if(java_home.chomp.empty?)
|
106
|
+
java_home = orig_java_home
|
107
|
+
end
|
108
|
+
|
109
|
+
puts 'Enter Repository Home (' + orig_repository_home + "):"
|
110
|
+
|
111
|
+
repository_home = gets
|
112
|
+
|
113
|
+
if(repository_home.chomp.empty?)
|
114
|
+
repository_home = orig_repository_home
|
115
|
+
end
|
116
|
+
|
117
|
+
settings = YAML::load File.open(from_file)
|
118
|
+
settings['java_home'] = java_home
|
119
|
+
settings['repositories']['local'] = repository_home
|
120
|
+
|
121
|
+
File.open( to_file, 'w' ) do |out|
|
122
|
+
YAML.dump(settings, out)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
prepare()
|
127
|
+
|
128
|
+
install_settings("lib/settings.yaml", $my_libdir + "/settings.yaml")
|
129
|
+
|
130
|
+
settings = YAML::load File.open($my_libdir + "/settings.yaml")
|
131
|
+
|
132
|
+
install_file("bin/sl.bat", $my_bindir, "sl.bat", settings) if CONFIG['host_os'] =~ /mswin/
|
133
|
+
|
134
|
+
install_file_with_header("bin/sl", $my_bindir + "/sl", settings)
|
135
|
+
|
metadata
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: scriptlandia-r
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alexander Shvets
|
8
|
+
autorequire: scriptlandia-r
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-11-02 00:00:00 -04:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Scriptlandia launcher.
|
17
|
+
email: alexander.shvets@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- lib/buildfile
|
26
|
+
- lib/languages
|
27
|
+
- lib/languages/ant
|
28
|
+
- lib/languages/ant/config.yaml
|
29
|
+
- lib/languages/beanshell
|
30
|
+
- lib/languages/beanshell/config.yaml
|
31
|
+
- lib/languages/clojure
|
32
|
+
- lib/languages/clojure/config.yaml
|
33
|
+
- lib/languages/extension_mapping.yaml
|
34
|
+
- lib/languages/fan
|
35
|
+
- lib/languages/fan/config.yaml
|
36
|
+
- lib/languages/fortress
|
37
|
+
- lib/languages/fortress/config.yaml
|
38
|
+
- lib/languages/groovy
|
39
|
+
- lib/languages/groovy/config.yaml
|
40
|
+
- lib/languages/jaskell
|
41
|
+
- lib/languages/jaskell/config.yaml
|
42
|
+
- lib/languages/javascript
|
43
|
+
- lib/languages/javascript/config.yaml
|
44
|
+
- lib/languages/jawk
|
45
|
+
- lib/languages/jawk/config.yaml
|
46
|
+
- lib/languages/jruby
|
47
|
+
- lib/languages/jruby/config.yaml
|
48
|
+
- lib/languages/judo
|
49
|
+
- lib/languages/judo/config.yaml
|
50
|
+
- lib/languages/jython
|
51
|
+
- lib/languages/jython/config.yaml
|
52
|
+
- lib/languages/lolcode
|
53
|
+
- lib/languages/lolcode/config.yaml
|
54
|
+
- lib/languages/pnuts
|
55
|
+
- lib/languages/pnuts/config.yaml
|
56
|
+
- lib/languages/ptilde
|
57
|
+
- lib/languages/ptilde/config.yaml
|
58
|
+
- lib/languages/scala
|
59
|
+
- lib/languages/scala/config.yaml
|
60
|
+
- lib/languages/sleep
|
61
|
+
- lib/languages/sleep/config.yaml
|
62
|
+
- lib/languages/tcl
|
63
|
+
- lib/languages/tcl/config.yaml
|
64
|
+
- lib/languages/yoix
|
65
|
+
- lib/languages/yoix/config.yaml
|
66
|
+
- lib/scriptlandia.rb
|
67
|
+
- lib/settings.yaml
|
68
|
+
- install.rb
|
69
|
+
- setup.rb
|
70
|
+
has_rdoc: false
|
71
|
+
homepage:
|
72
|
+
post_install_message:
|
73
|
+
rdoc_options: []
|
74
|
+
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: "0"
|
82
|
+
version:
|
83
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: "0"
|
88
|
+
version:
|
89
|
+
requirements:
|
90
|
+
- none
|
91
|
+
rubyforge_project:
|
92
|
+
rubygems_version: 1.0.1
|
93
|
+
signing_key:
|
94
|
+
specification_version: 2
|
95
|
+
summary: .
|
96
|
+
test_files: []
|
97
|
+
|