mrb 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/README.md +2 -0
- data/Rakefile +5 -2
- data/assets/templates/gem/build_config.rb.erb +12 -0
- data/lib/mrb.rb +1 -1
- data/lib/mrb/cli.rb +122 -3
- data/lib/mrb/config.rb +34 -0
- data/lib/mrb/template.rb +4 -0
- data/lib/mrb/util.rb +6 -0
- data/lib/mrb/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 264963a85561a0e0380b8e1f69e482b604736f9a
|
4
|
+
data.tar.gz: 0e1793cde02af8d35089381430bd64822ddeaee7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10dbbb0bf347eb158f1f4ea805a328ca0f35d977ab479c4b8c95eabe8822bd17b8db7d8d076038ca54e2f55f83b675535ca42dfb87ee3169d4a857da64b38fca
|
7
|
+
data.tar.gz: 5547fff79796c3be317564ca26188cc02e399351ef43ec36c0fac1e00c1ce03b845f55a60e4d131bdee3756eeea4d556d97cf06edf24ffde699c350e1df4187e
|
data/Gemfile
CHANGED
data/README.md
CHANGED
data/Rakefile
CHANGED
data/lib/mrb.rb
CHANGED
data/lib/mrb/cli.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
require 'thor'
|
2
|
-
require 'erb'
|
3
2
|
require 'fileutils'
|
4
3
|
require 'yaml'
|
4
|
+
require "mrb/version"
|
5
|
+
require "mrb/config"
|
5
6
|
|
6
7
|
module Mrb
|
7
8
|
class CLI < Thor
|
9
|
+
MRB_CONFIG_PATH = ".mrb"
|
10
|
+
|
8
11
|
desc "get", "get mruby source code"
|
9
12
|
def get()
|
10
13
|
%x{git clone https://github.com/mruby/mruby.git}
|
@@ -18,10 +21,21 @@ module Mrb
|
|
18
21
|
FileUtils.mkdir_p full_name
|
19
22
|
puts "Creating gem '#{full_name}'..."
|
20
23
|
|
24
|
+
FileUtils.mkdir_p "#{full_name}/#{MRB_CONFIG_PATH}"
|
25
|
+
|
26
|
+
config = nil
|
27
|
+
if File.exist? "#{full_name}/#{MRB_CONFIG_PATH}/config"
|
28
|
+
config = Config.load "#{full_name}/#{MRB_CONFIG_PATH}/config"
|
29
|
+
else
|
30
|
+
config = Config.create "#{full_name}/#{MRB_CONFIG_PATH}/config"
|
31
|
+
end
|
32
|
+
|
21
33
|
File.write "#{full_name}/README.md", Mrb::Template.render_readme(variables)
|
22
34
|
puts " create #{full_name}/README.md"
|
23
35
|
File.write "#{full_name}/mrbgem.rake", Mrb::Template.render_mrbgem(variables)
|
24
36
|
puts " create #{full_name}/mrbgem.rake"
|
37
|
+
File.write "#{full_name}/mrb-build_config.rb", Mrb::Template.render_mrb_build_config(variables)
|
38
|
+
puts " create #{full_name}/mrb-build_config.rb"
|
25
39
|
|
26
40
|
FileUtils.mkdir_p "#{full_name}/src"
|
27
41
|
File.write "#{full_name}/src/example.c", Mrb::Template.render_example_c(variables)
|
@@ -96,9 +110,114 @@ module Mrb
|
|
96
110
|
end
|
97
111
|
end
|
98
112
|
|
99
|
-
desc "
|
113
|
+
desc "install", "install mruby"
|
114
|
+
option :list, :aliases => :l
|
115
|
+
def install(version = "")
|
116
|
+
available_versions = %w(1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 master)
|
117
|
+
|
118
|
+
if options[:list]
|
119
|
+
puts "available versions:"
|
120
|
+
available_versions.each {|v| puts " #{v}"}
|
121
|
+
return
|
122
|
+
end
|
123
|
+
|
124
|
+
unless available_versions.include?(version)
|
125
|
+
$stderr.puts "Error: Not supported version. version=#{version}"
|
126
|
+
return
|
127
|
+
end
|
128
|
+
|
129
|
+
config = Config.load "#{MRB_CONFIG_PATH}/config"
|
130
|
+
|
131
|
+
if File.directory? "#{MRB_CONFIG_PATH}/#{version}"
|
132
|
+
$stderr.puts "Error: already exists path=#{MRB_CONFIG_PATH}/#{version}"
|
133
|
+
return
|
134
|
+
end
|
135
|
+
|
136
|
+
config["current"]["version"] = version
|
137
|
+
config["current"]["installed"] << version unless config["current"]["installed"].include? version
|
138
|
+
Config.save "#{MRB_CONFIG_PATH}/config", config
|
139
|
+
|
140
|
+
system Util.git_clone_command(config["mruby"]["url"], version, MRB_CONFIG_PATH)
|
141
|
+
invoke :rake, "", {}
|
142
|
+
end
|
143
|
+
|
144
|
+
desc "uninstall", "uninstall a specific mruby"
|
145
|
+
def uninstall(version)
|
146
|
+
config = Config.load "#{MRB_CONFIG_PATH}/config"
|
147
|
+
unless config["current"]["installed"].include? version
|
148
|
+
$stderr.puts "Error: not found. version=#{version}"
|
149
|
+
return
|
150
|
+
end
|
151
|
+
|
152
|
+
print "Are you sure you want to remove mruby? (y/n): "
|
153
|
+
answer = STDIN.gets.chomp
|
154
|
+
unless answer == "y"
|
155
|
+
$stderr.puts "cancel"
|
156
|
+
return
|
157
|
+
end
|
158
|
+
|
159
|
+
config["current"]["version"] = "" if config["current"]["version"] == version
|
160
|
+
config["current"]["installed"] = config["current"]["installed"].delete_if {|v| v == version }
|
161
|
+
Config.save "#{MRB_CONFIG_PATH}/config", config
|
162
|
+
|
163
|
+
FileUtils.rm_rf "#{MRB_CONFIG_PATH}/#{version}"
|
164
|
+
puts "done."
|
165
|
+
end
|
166
|
+
|
167
|
+
desc "versions", "list installed mruby version"
|
168
|
+
def versions()
|
169
|
+
config = Config.load "#{MRB_CONFIG_PATH}/config"
|
170
|
+
current_version = config["current"]["version"]
|
171
|
+
config["current"]["installed"].each do |version|
|
172
|
+
if current_version == version
|
173
|
+
print "* "
|
174
|
+
else
|
175
|
+
print " "
|
176
|
+
end
|
177
|
+
puts "#{version} (set by #{MRB_CONFIG_PATH}/#{version})"
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
desc "version", "show current mruby version"
|
100
182
|
def version()
|
101
|
-
|
183
|
+
config = Config.load "#{MRB_CONFIG_PATH}/config"
|
184
|
+
version = config["current"]["version"]
|
185
|
+
|
186
|
+
puts "#{version} (set by #{MRB_CONFIG_PATH}/#{version})"
|
187
|
+
end
|
188
|
+
|
189
|
+
desc "use", "switch mruby version"
|
190
|
+
def use(version)
|
191
|
+
config = Config.load "#{MRB_CONFIG_PATH}/config"
|
192
|
+
unless config["current"]["installed"].include? version
|
193
|
+
$stderr.puts "Error: not found. version=#{version}"
|
194
|
+
return
|
195
|
+
end
|
196
|
+
|
197
|
+
config["current"]["version"] = version
|
198
|
+
Config.save "#{MRB_CONFIG_PATH}/config", config
|
199
|
+
|
200
|
+
invoke :version, [], {}
|
201
|
+
end
|
202
|
+
|
203
|
+
desc "test", "execute mruby test"
|
204
|
+
def test()
|
205
|
+
invoke :rake, ["test"], {}
|
206
|
+
end
|
207
|
+
|
208
|
+
desc "clean", "clean up build files"
|
209
|
+
def clean()
|
210
|
+
invoke :rake, ["clean"], {}
|
211
|
+
end
|
212
|
+
|
213
|
+
desc "rake", "execute mruby minirake task"
|
214
|
+
def rake(task = "")
|
215
|
+
config = Config.load "#{MRB_CONFIG_PATH}/config"
|
216
|
+
version = config["current"]["version"]
|
217
|
+
|
218
|
+
Dir.chdir("#{MRB_CONFIG_PATH}/#{version}") do
|
219
|
+
system "MRUBY_CONFIG=../../mrb-build_config.rb ./minirake #{task}"
|
220
|
+
end
|
102
221
|
end
|
103
222
|
end
|
104
223
|
end
|
data/lib/mrb/config.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require "yaml"
|
2
|
+
|
3
|
+
module Mrb
|
4
|
+
class Config
|
5
|
+
DEFAULT_CONFIG = {
|
6
|
+
"mruby" => {
|
7
|
+
"url" => "https://github.com/mruby/mruby.git",
|
8
|
+
"tag" => []
|
9
|
+
},
|
10
|
+
"current" => {
|
11
|
+
"version" => "",
|
12
|
+
"installed" => []
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
def self.create(config_path)
|
17
|
+
File.open(config_path, "w") do |fout|
|
18
|
+
YAML.dump(DEFAULT_CONFIG, fout)
|
19
|
+
end
|
20
|
+
DEFAULT_CONFIG
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.load(config_path)
|
24
|
+
YAML.load_file(config_path)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.save(config_path, config)
|
28
|
+
File.open(config_path, "w") do |fout|
|
29
|
+
YAML.dump(config, fout)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
data/lib/mrb/template.rb
CHANGED
@@ -24,6 +24,10 @@ module Mrb
|
|
24
24
|
render('gem/mrbgem.rake.erb', variables)
|
25
25
|
end
|
26
26
|
|
27
|
+
def self.render_mrb_build_config(variables)
|
28
|
+
render('gem/build_config.rb.erb', variables)
|
29
|
+
end
|
30
|
+
|
27
31
|
def self.render_example_c(variables)
|
28
32
|
render('gem/example.c.erb', variables)
|
29
33
|
end
|
data/lib/mrb/util.rb
CHANGED
@@ -15,5 +15,11 @@ module Mrb
|
|
15
15
|
:name => name,
|
16
16
|
}
|
17
17
|
end
|
18
|
+
|
19
|
+
def self.git_clone_command(mruby_repo_url, version, mrb_config_path)
|
20
|
+
git_cone_cmd = "git clone --depth=1 "
|
21
|
+
git_cone_cmd << " -b #{version} " unless version.casecmp("master") == 0
|
22
|
+
git_cone_cmd << " #{mruby_repo_url} #{mrb_config_path}/#{version}"
|
23
|
+
end
|
18
24
|
end
|
19
25
|
end
|
data/lib/mrb/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- qtakamitsu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- assets/templates/config/build_config_crossbuild.erb
|
87
87
|
- assets/templates/config/build_config_host.erb
|
88
88
|
- assets/templates/gem/README.md.erb
|
89
|
+
- assets/templates/gem/build_config.rb.erb
|
89
90
|
- assets/templates/gem/example.c.erb
|
90
91
|
- assets/templates/gem/mrbgem.rake.erb
|
91
92
|
- assets/templates/gem/test_example.c.erb
|
@@ -95,6 +96,7 @@ files:
|
|
95
96
|
- exe/mrb
|
96
97
|
- lib/mrb.rb
|
97
98
|
- lib/mrb/cli.rb
|
99
|
+
- lib/mrb/config.rb
|
98
100
|
- lib/mrb/template.rb
|
99
101
|
- lib/mrb/util.rb
|
100
102
|
- lib/mrb/version.rb
|