zeno 0.0.1
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 +7 -0
- data/bin/zeno +9 -0
- data/lib/zeno/applicationalreadyexistserror.rb +33 -0
- data/lib/zeno/filegenerator.rb +57 -0
- data/lib/zeno/makefile.rb +61 -0
- data/lib/zeno/scaffolder.rb +72 -0
- data/lib/zeno/version.rb +3 -0
- data/lib/zeno.rb +325 -0
- metadata +107 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0e9663b92c8a4e45072629e98ef83c2a00998858
|
4
|
+
data.tar.gz: e2f951043000b9c55f990867f0c99c091c96c757
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e7a5e1fa8a37ddbc6aa40bcc57ff916b01306f4a313c88bfad80c07cd813bdf29151dea256a3f2add7e83194adde7264a2c8ef4d304c4527d0f13440cbdad8bb
|
7
|
+
data.tar.gz: c01e0b76e9933be79f4accd1847876bf059892c31716ceaad268fd9f3ec4094cc98d7b9e989b921fc739695455cdfdb9c6049359e3fbc6cadfaccf6ce3c0435b
|
data/bin/zeno
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#
|
2
|
+
# Zeno module
|
3
|
+
# Copyright (C) 2016 Michel Megens <dev@bietje.net>
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
module Zeno
|
20
|
+
class ApplicationAlreadyExistsError < StandardError
|
21
|
+
attr_reader :msg
|
22
|
+
|
23
|
+
@msg = nil
|
24
|
+
def initialize(msg = nil)
|
25
|
+
@msg = msg || "The requested application name already exists!"
|
26
|
+
end
|
27
|
+
|
28
|
+
def message
|
29
|
+
@msg
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#
|
2
|
+
# Zeno module
|
3
|
+
# Copyright (C) 2016 Michel Megens <dev@bietje.net>
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
module Zeno
|
20
|
+
class FileGenerator
|
21
|
+
attr_reader :path, :vars
|
22
|
+
|
23
|
+
@path = nil
|
24
|
+
@vars = nil
|
25
|
+
|
26
|
+
def initialize(path)
|
27
|
+
@path = path
|
28
|
+
@vars = Hash.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def add_var(name, value, assign = '=')
|
32
|
+
@vars[name] = value
|
33
|
+
end
|
34
|
+
|
35
|
+
def del_var(name)
|
36
|
+
@vars.delete name
|
37
|
+
end
|
38
|
+
|
39
|
+
def generate
|
40
|
+
File.open(path, 'w') do |file|
|
41
|
+
file.puts self.to_s
|
42
|
+
end
|
43
|
+
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
|
47
|
+
def to_s
|
48
|
+
output = ""
|
49
|
+
@vars.each do |key, value|
|
50
|
+
output += "#{key}=#{value}\n"
|
51
|
+
end
|
52
|
+
|
53
|
+
output
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
#
|
2
|
+
# Zeno module
|
3
|
+
# Copyright (C) 2016 Michel Megens <dev@bietje.net>
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'zeno/filegenerator'
|
20
|
+
|
21
|
+
module Zeno
|
22
|
+
class Makefile < Zeno::FileGenerator
|
23
|
+
def initialize(path)
|
24
|
+
super
|
25
|
+
@targets = Hash.new
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_target(target, rules)
|
29
|
+
@targets[target] = rules
|
30
|
+
end
|
31
|
+
|
32
|
+
def generate
|
33
|
+
File.open(@path, 'w') do |makefile|
|
34
|
+
makefile.puts self.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
|
40
|
+
def to_s
|
41
|
+
output = super
|
42
|
+
|
43
|
+
output += "\n"
|
44
|
+
@targets.each do |key, value|
|
45
|
+
output += "#{key}:\n"
|
46
|
+
if value.is_a? Array
|
47
|
+
value.each do |e|
|
48
|
+
output += "\t#{e}\n"
|
49
|
+
end
|
50
|
+
else
|
51
|
+
output += "\t#{value}\n"
|
52
|
+
end
|
53
|
+
|
54
|
+
output += "\n"
|
55
|
+
end
|
56
|
+
|
57
|
+
output
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#
|
2
|
+
# Zeno module
|
3
|
+
# Copyright (C) 2016 Michel Megens <dev@bietje.net>
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'fileutils'
|
20
|
+
|
21
|
+
require 'zeno/makefile'
|
22
|
+
require 'zeno/filegenerator'
|
23
|
+
require 'zeno/applicationalreadyexistserror'
|
24
|
+
|
25
|
+
module Zeno
|
26
|
+
class Scaffolder
|
27
|
+
attr_reader :dirname, :etaos_path, :arch, :libdir
|
28
|
+
|
29
|
+
def initialize(name, path, libdir, arch)
|
30
|
+
@dirname = name
|
31
|
+
@etaos_path = path
|
32
|
+
@libdir = libdir
|
33
|
+
@arch = arch
|
34
|
+
end
|
35
|
+
|
36
|
+
def create
|
37
|
+
raise Zeno::ApplicationAlreadyExistsError if File.directory? @dirname
|
38
|
+
FileUtils.mkdir_p @dirname
|
39
|
+
end
|
40
|
+
|
41
|
+
def generate
|
42
|
+
generate_mkfile
|
43
|
+
generate_kbuildfile
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def generate_mkfile
|
49
|
+
target_rule = "@$(MAKE) -C $(ETAOS) A=#{Dir.pwd}/#{@dirname} ARCH=#{@arch} CROSS_COMPILE=#{@arch}-"
|
50
|
+
file = "#{@dirname}/Makefile"
|
51
|
+
mkfile = Zeno::Makefile.new file
|
52
|
+
mkfile.add_var('ETAOS', @etaos_path)
|
53
|
+
mkfile.add_target('all', target_rule + " app")
|
54
|
+
mkfile.add_target('clean', target_rule + " clean")
|
55
|
+
mkfile.generate
|
56
|
+
end
|
57
|
+
|
58
|
+
def generate_kbuildfile
|
59
|
+
file = "#{@dirname}/Kbuild"
|
60
|
+
gen = Zeno::FileGenerator.new file
|
61
|
+
gen.add_var('obj-y', '# TODO: add source files', '+=')
|
62
|
+
gen.add_var('crurom-y', '# TODO: add crurom directory or delete this line', ':=')
|
63
|
+
gen.add_var('crurom-obj', '# TODO: add crurom object file or delete this line', ':=')
|
64
|
+
gen.add_var('ETAOS_LIBS', '-lc', '+=')
|
65
|
+
gen.add_var('ETAOS_LIB_DIR', @libdir, ':=')
|
66
|
+
gen.add_var('APP_TARGET', "#{@dirname}.img", ':=')
|
67
|
+
gen.add_var('clean-files', "#{@dirname}.img", '+=')
|
68
|
+
gen.generate
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
data/lib/zeno/version.rb
ADDED
data/lib/zeno.rb
ADDED
@@ -0,0 +1,325 @@
|
|
1
|
+
#
|
2
|
+
# Zeno module
|
3
|
+
# Copyright (C) 2016 Michel Megens <dev@bietje.net>
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'optparse'
|
20
|
+
require 'optparse/time'
|
21
|
+
require 'ostruct'
|
22
|
+
require 'tempfile'
|
23
|
+
require 'pp'
|
24
|
+
require 'zip'
|
25
|
+
|
26
|
+
require 'net/http'
|
27
|
+
|
28
|
+
require 'zeno/version'
|
29
|
+
require 'zeno/scaffolder'
|
30
|
+
require 'zeno/applicationalreadyexistserror'
|
31
|
+
|
32
|
+
module Zeno
|
33
|
+
class << self
|
34
|
+
def start(args)
|
35
|
+
case args.shift
|
36
|
+
when 'app'
|
37
|
+
start_app(args)
|
38
|
+
when 'get'
|
39
|
+
start_get(args)
|
40
|
+
when 'solution'
|
41
|
+
start_solution(args)
|
42
|
+
when '-v'
|
43
|
+
puts "Zeno #{Zeno::VERSION}"
|
44
|
+
exit
|
45
|
+
when '--version'
|
46
|
+
puts "Zeno #{Zeno::VERSION}"
|
47
|
+
exit
|
48
|
+
else
|
49
|
+
puts "Usage: zeno <command> <args>"
|
50
|
+
puts ""
|
51
|
+
puts "Available commands are:"
|
52
|
+
puts " app\tScaffolder to create new ETA/OS applications"
|
53
|
+
puts " get\tETA/OS download service"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def start_get(args)
|
58
|
+
options = OpenStruct.new
|
59
|
+
options.output = Dir.pwd
|
60
|
+
options.target = 'stable'
|
61
|
+
|
62
|
+
parser = OptionParser.new do |opts|
|
63
|
+
opts.banner = "Usage: zeno get [options]"
|
64
|
+
opts.separator ""
|
65
|
+
opts.separator "Specific options:"
|
66
|
+
|
67
|
+
opts.on('-o', '--output PATH',
|
68
|
+
'Place to dump the ETA/OS download') do |path|
|
69
|
+
options.output = path
|
70
|
+
end
|
71
|
+
|
72
|
+
opts.on('-t', '--target TARGET',
|
73
|
+
'Download target. Available targets are: stable, old-stable and bleeding.') do |target|
|
74
|
+
options.target = target
|
75
|
+
end
|
76
|
+
|
77
|
+
opts.on('-V', '--versions',
|
78
|
+
'List all available ETA/OS versions.') do
|
79
|
+
puts "Available ETA/OS versions:"
|
80
|
+
puts ""
|
81
|
+
puts Zeno.get_versions
|
82
|
+
exit
|
83
|
+
end
|
84
|
+
|
85
|
+
opts.separator ""
|
86
|
+
opts.separator "Common options:"
|
87
|
+
|
88
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
89
|
+
puts opts
|
90
|
+
exit
|
91
|
+
end
|
92
|
+
|
93
|
+
opts.on_tail("-v", "--version", "Print the Zeno version") do
|
94
|
+
puts "Zeno #{Zeno::VERSION}"
|
95
|
+
exit
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
parser.parse!
|
100
|
+
Zeno.download(options.output, options.target)
|
101
|
+
end
|
102
|
+
|
103
|
+
def start_solution(args)
|
104
|
+
options = OpenStruct.new
|
105
|
+
options.name = nil
|
106
|
+
options.path = Dir.pwd
|
107
|
+
options.libdir = nil
|
108
|
+
options.target = nil
|
109
|
+
options.version = nil
|
110
|
+
|
111
|
+
parser = OptionParser.new do |opts|
|
112
|
+
opts.banner = "Usage: zeno solution [options]"
|
113
|
+
opts.separator ""
|
114
|
+
opts.separator "Specific options:"
|
115
|
+
|
116
|
+
opts.on("-b", "--base PATH",
|
117
|
+
"Solution base path") do |path|
|
118
|
+
options.path = path || Dir.pwd
|
119
|
+
end
|
120
|
+
|
121
|
+
# Mandatory
|
122
|
+
opts.on("-n", "--name NAME",
|
123
|
+
"Solution name") do |name|
|
124
|
+
options.name = name
|
125
|
+
end
|
126
|
+
|
127
|
+
# Mandatory
|
128
|
+
opts.on("-l", "--libs PATH",
|
129
|
+
"Path to the ETA/OS libraries") do |path|
|
130
|
+
options.libdir = path
|
131
|
+
end
|
132
|
+
|
133
|
+
# Mandatory
|
134
|
+
opts.on("-t", "--target TARGET",
|
135
|
+
"ETA/OS target architecture") do |arch|
|
136
|
+
options.target = arch
|
137
|
+
end
|
138
|
+
|
139
|
+
opts.on("-V", "-ref VERSION",
|
140
|
+
"ETA/OS version (git ref) to download") do |ref|
|
141
|
+
options.version = ref
|
142
|
+
end
|
143
|
+
|
144
|
+
opts.separator ""
|
145
|
+
opts.separator "Common options:"
|
146
|
+
|
147
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
148
|
+
puts opts
|
149
|
+
exit
|
150
|
+
end
|
151
|
+
|
152
|
+
opts.on_tail("-v", "--version", "Print the Zeno version") do
|
153
|
+
puts "Zeno #{Zeno::VERSION}"
|
154
|
+
exit
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
parser.parse!
|
159
|
+
|
160
|
+
mandatory = [:name, :libdir, :target]
|
161
|
+
missing = mandatory.select do |param|
|
162
|
+
if options[param].nil? or options[param] == false
|
163
|
+
param
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
unless missing.empty?
|
168
|
+
puts "Missing mandatory options!"
|
169
|
+
puts ""
|
170
|
+
puts parser
|
171
|
+
exit
|
172
|
+
end
|
173
|
+
|
174
|
+
ref = Zeno.parse_target(options.version)
|
175
|
+
etaos_path = "../etaos-#{ref}"
|
176
|
+
Zeno.download(options.path, options.version)
|
177
|
+
|
178
|
+
begin
|
179
|
+
Dir.chdir options.name
|
180
|
+
scaffolder = Zeno::Scaffolder.new(options.name, etaos_path,
|
181
|
+
options.libdir, options.target)
|
182
|
+
scaffolder.create
|
183
|
+
scaffolder.generate
|
184
|
+
rescue ApplicationAlreadyExistsError => e
|
185
|
+
puts "Error: #{e.message}"
|
186
|
+
exit
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
def start_app(args)
|
191
|
+
options = OpenStruct.new
|
192
|
+
options.name = nil
|
193
|
+
options.epath = nil
|
194
|
+
options.app = false
|
195
|
+
options.libdir = nil
|
196
|
+
options.target = nil
|
197
|
+
|
198
|
+
parser = OptionParser.new do |opts|
|
199
|
+
opts.banner = "Usage: zeno app [options]"
|
200
|
+
opts.separator ""
|
201
|
+
opts.separator "Specific options:"
|
202
|
+
|
203
|
+
# Mandatory
|
204
|
+
opts.on("-r", "--root PATH",
|
205
|
+
"Absolute path to ETA/OS") do |path|
|
206
|
+
options.epath = path
|
207
|
+
end
|
208
|
+
|
209
|
+
# Mandatory
|
210
|
+
opts.on("-n", "--name NAME",
|
211
|
+
"Name of the application") do |name|
|
212
|
+
options.name = name
|
213
|
+
end
|
214
|
+
|
215
|
+
# Mandatory
|
216
|
+
opts.on("-l", "--libs PATH",
|
217
|
+
"Path to the ETA/OS libraries") do |path|
|
218
|
+
options.libdir = path
|
219
|
+
end
|
220
|
+
|
221
|
+
# Mandatory
|
222
|
+
opts.on("-t", "--target TARGET",
|
223
|
+
"Target architecture") do |target|
|
224
|
+
options.target = target
|
225
|
+
end
|
226
|
+
|
227
|
+
opts.separator ""
|
228
|
+
opts.separator "Common options:"
|
229
|
+
|
230
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
231
|
+
puts opts
|
232
|
+
exit
|
233
|
+
end
|
234
|
+
|
235
|
+
opts.on_tail("-v", "--version", "Print the Zeno version") do
|
236
|
+
puts "Zeno #{Zeno::VERSION}"
|
237
|
+
exit
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
parser.parse!(args)
|
242
|
+
options.app = true
|
243
|
+
|
244
|
+
mandatory = [:app, :epath, :name, :target, :libdir]
|
245
|
+
missing = mandatory.select do |param|
|
246
|
+
if options[param].nil? or options[param] == false
|
247
|
+
param
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
251
|
+
unless missing.empty?
|
252
|
+
puts "Missing mandatory arguments"
|
253
|
+
puts ""
|
254
|
+
puts parser
|
255
|
+
exit
|
256
|
+
end
|
257
|
+
|
258
|
+
begin
|
259
|
+
scaffolder = Zeno::Scaffolder.new(options.name, options.epath,
|
260
|
+
options.libdir, options.target)
|
261
|
+
scaffolder.create
|
262
|
+
scaffolder.generate
|
263
|
+
rescue ApplicationAlreadyExistsError => e
|
264
|
+
puts "Error: #{e.message}"
|
265
|
+
exit
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
def parse_target(target)
|
270
|
+
ref = target
|
271
|
+
odd_versions = ['stable', 'latest', 'old-stable', 'bleeding']
|
272
|
+
|
273
|
+
if odd_versions.include? target
|
274
|
+
uri = URI("http://zeno.bietje.net/#{target}.txt")
|
275
|
+
ref = Net::HTTP.get(uri)
|
276
|
+
end
|
277
|
+
|
278
|
+
ref
|
279
|
+
end
|
280
|
+
|
281
|
+
def get_versions
|
282
|
+
uri = URI("http://zeno.bietje.net/versions.txt")
|
283
|
+
Net::HTTP.get(uri)
|
284
|
+
end
|
285
|
+
|
286
|
+
def download(out, target)
|
287
|
+
# The correct git refs for the target can be found using the Zeno
|
288
|
+
# web service (zeno.bietje.net).
|
289
|
+
first = true
|
290
|
+
silly_name = nil
|
291
|
+
ref = Zeno.parse_target(target)
|
292
|
+
ref.strip!
|
293
|
+
uri = URI("https://git.bietje.net/etaos/etaos/repository/archive.zip?ref=#{ref}")
|
294
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
295
|
+
http.use_ssl = true
|
296
|
+
|
297
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
298
|
+
response = http.request(request)
|
299
|
+
zip = Tempfile.new("etaos-#{ref}.zip", Dir.tmpdir, 'wb+')
|
300
|
+
zip.binmode
|
301
|
+
zip.write(response.body)
|
302
|
+
path = zip.path
|
303
|
+
zip.close
|
304
|
+
|
305
|
+
Zip::File.open(path) do |zip_file|
|
306
|
+
zip_file.each do |f|
|
307
|
+
if first
|
308
|
+
silly_name = f.name
|
309
|
+
first = false
|
310
|
+
end
|
311
|
+
|
312
|
+
f_path = File.join(out, f.name)
|
313
|
+
FileUtils.mkdir_p(File.dirname(f_path))
|
314
|
+
zip_file.extract(f, f_path) unless File.exist?(f_path)
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
318
|
+
# fix the silly top dir name
|
319
|
+
f_path = File.join(out, silly_name)
|
320
|
+
f_path_new = File.join(out, "etaos-#{ref}")
|
321
|
+
FileUtils.mv f_path, f_path_new
|
322
|
+
end
|
323
|
+
end
|
324
|
+
end
|
325
|
+
|
metadata
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zeno
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michel Megens
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-09-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.11'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubyzip
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.0.0
|
69
|
+
description: Zeno generates ETA/OS applications with a single command.
|
70
|
+
email:
|
71
|
+
- dev@bietje.net
|
72
|
+
executables:
|
73
|
+
- zeno
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- bin/zeno
|
78
|
+
- lib/zeno.rb
|
79
|
+
- lib/zeno/applicationalreadyexistserror.rb
|
80
|
+
- lib/zeno/filegenerator.rb
|
81
|
+
- lib/zeno/makefile.rb
|
82
|
+
- lib/zeno/scaffolder.rb
|
83
|
+
- lib/zeno/version.rb
|
84
|
+
homepage: http://bietje.net/zeno
|
85
|
+
licenses: []
|
86
|
+
metadata: {}
|
87
|
+
post_install_message:
|
88
|
+
rdoc_options: []
|
89
|
+
require_paths:
|
90
|
+
- lib
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
requirements: []
|
102
|
+
rubyforge_project:
|
103
|
+
rubygems_version: 2.4.8
|
104
|
+
signing_key:
|
105
|
+
specification_version: 4
|
106
|
+
summary: ETA/OS scaffolder
|
107
|
+
test_files: []
|