zeno 0.1.0 → 0.1.2
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/lib/zeno/{scaffolder.rb → application.rb} +4 -8
- data/lib/zeno/filegenerator.rb +2 -2
- data/lib/zeno/solution.rb +60 -0
- data/lib/zeno/version.rb +19 -1
- data/lib/zeno.rb +21 -18
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 748f50dfbeeda0f7812b26e3b69e5c7f8ad50f9a
|
4
|
+
data.tar.gz: a81aaa37f68472b44229177bcebf41190066b388
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8996482f98ebfdaf8829c566339bb17323b806ffe52a85f8a5acfe04cd3780912adaba412d3dcd99a941d4b1e31539dac40b3926df7d85b232592014c5bc381
|
7
|
+
data.tar.gz: 0c7ee5dfa1564bc8fcd0c71a60e8b32ebf9a94f817b4e7d54db2fa25767315f211def9ff1492bbf79f97cda31b0aa95f0a07c5fca9fa1cedcb7068132920b96b
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Zeno module
|
3
|
-
# Copyright (C)
|
3
|
+
# Copyright (C) 2017 Michel Megens <dev@bietje.net>
|
4
4
|
#
|
5
5
|
# This program is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU General Public License as published by
|
@@ -16,19 +16,15 @@
|
|
16
16
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
17
|
#
|
18
18
|
|
19
|
-
require 'fileutils'
|
20
|
-
|
21
19
|
require 'zeno/makefile'
|
22
|
-
require 'zeno/filegenerator'
|
23
|
-
require 'zeno/applicationalreadyexistserror'
|
24
20
|
|
25
21
|
module Zeno
|
26
|
-
class
|
22
|
+
class Application
|
27
23
|
attr_reader :dirname, :etaos_path, :arch, :libdir
|
28
24
|
|
29
25
|
def initialize(name, path, libdir, arch)
|
30
26
|
@dirname = name
|
31
|
-
@etaos_path = path
|
27
|
+
@etaos_path = "../#{path}"
|
32
28
|
@libdir = libdir
|
33
29
|
@arch = arch
|
34
30
|
end
|
@@ -59,6 +55,7 @@ module Zeno
|
|
59
55
|
file = "#{@dirname}/Kbuild"
|
60
56
|
gen = Zeno::FileGenerator.new file
|
61
57
|
gen.add_var('obj-y', '# TODO: add source files', '+=')
|
58
|
+
gen.add_var('pyusrlib-y', '# TODO: add python libs or delete this line', '+=')
|
62
59
|
gen.add_var('crurom-y', '# TODO: add crurom directory or delete this line', ':=')
|
63
60
|
gen.add_var('crurom-obj', '# TODO: add crurom object file or delete this line', ':=')
|
64
61
|
gen.add_var('ETAOS_LIBS', '-lc', '+=')
|
@@ -69,4 +66,3 @@ module Zeno
|
|
69
66
|
end
|
70
67
|
end
|
71
68
|
end
|
72
|
-
|
data/lib/zeno/filegenerator.rb
CHANGED
@@ -29,7 +29,7 @@ module Zeno
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def add_var(name, value, assign = '=')
|
32
|
-
@vars[name] = value
|
32
|
+
@vars[name] = "#{assign} #{value}"
|
33
33
|
end
|
34
34
|
|
35
35
|
def del_var(name)
|
@@ -47,7 +47,7 @@ module Zeno
|
|
47
47
|
def to_s
|
48
48
|
output = ""
|
49
49
|
@vars.each do |key, value|
|
50
|
-
output += "#{key}
|
50
|
+
output += "#{key} #{value}\n"
|
51
51
|
end
|
52
52
|
|
53
53
|
output
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#
|
2
|
+
# Zeno module
|
3
|
+
# Copyright (C) 2017 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 Solution
|
21
|
+
attr_reader :name, :path
|
22
|
+
|
23
|
+
@name = nil
|
24
|
+
@basepath = nil
|
25
|
+
@path = nil
|
26
|
+
@ref = nil
|
27
|
+
@libs = nil
|
28
|
+
@apps = nil
|
29
|
+
@target = nil
|
30
|
+
|
31
|
+
def initialize(opts)
|
32
|
+
@name = opts['name']
|
33
|
+
@basepath = opts['path']
|
34
|
+
@ref = opts['ref']
|
35
|
+
@libs = opts['libs']
|
36
|
+
@path = "#{@basepath}/#{@name}"
|
37
|
+
@apps = opts['apps']
|
38
|
+
@target = opts['target']
|
39
|
+
|
40
|
+
raise Zeno::ApplicationAlreadyExistsError if File.directory? @path
|
41
|
+
end
|
42
|
+
|
43
|
+
def create()
|
44
|
+
FileUtils.mkdir_p @path unless File.directory? @path
|
45
|
+
Dir.chdir @path
|
46
|
+
|
47
|
+
version = Zeno.parse_target(@ref)
|
48
|
+
etaos_path = "etaos-#{version}"
|
49
|
+
Zeno.download(@path, @ref)
|
50
|
+
|
51
|
+
# Create applications
|
52
|
+
@apps.each do |app|
|
53
|
+
application = Zeno::Application.new(app, etaos_path, @libs, @target)
|
54
|
+
application.create
|
55
|
+
application.generate
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
data/lib/zeno/version.rb
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
#
|
2
|
+
# Zeno module
|
3
|
+
# Copyright (C) 2017 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
|
+
|
1
19
|
module Zeno
|
2
|
-
VERSION = '0.1.
|
20
|
+
VERSION = '0.1.2'
|
3
21
|
end
|
data/lib/zeno.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Zeno module
|
3
|
-
# Copyright (C) 2016 Michel Megens <dev@bietje.net>
|
3
|
+
# Copyright (C) 2016, 2017 Michel Megens <dev@bietje.net>
|
4
4
|
#
|
5
5
|
# This program is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU General Public License as published by
|
@@ -26,7 +26,8 @@ require 'zip'
|
|
26
26
|
require 'net/http'
|
27
27
|
|
28
28
|
require 'zeno/version'
|
29
|
-
require 'zeno/
|
29
|
+
require 'zeno/application'
|
30
|
+
require 'zeno/solution'
|
30
31
|
require 'zeno/applicationalreadyexistserror'
|
31
32
|
|
32
33
|
# Zeno base module
|
@@ -52,7 +53,7 @@ module Zeno
|
|
52
53
|
puts "Usage: zeno <command> <args>"
|
53
54
|
puts ""
|
54
55
|
puts "Available commands are:"
|
55
|
-
puts " app\t\
|
56
|
+
puts " app\t\tApplication to create new ETA/OS applications"
|
56
57
|
puts " get\t\tETA/OS download service"
|
57
58
|
puts " solution\tCreate an ETA/OS solution"
|
58
59
|
end
|
@@ -115,6 +116,7 @@ module Zeno
|
|
115
116
|
options.libdir = nil
|
116
117
|
options.target = nil
|
117
118
|
options.version = nil
|
119
|
+
options.apps = nil
|
118
120
|
|
119
121
|
parser = OptionParser.new do |opts|
|
120
122
|
opts.banner = "Usage: zeno solution [options]"
|
@@ -138,6 +140,11 @@ module Zeno
|
|
138
140
|
options.libdir = path
|
139
141
|
end
|
140
142
|
|
143
|
+
opts.on("-a", "--apps APPS",
|
144
|
+
"List of applications to generate (comma separated") do |apps|
|
145
|
+
options.apps = apps.split(',')
|
146
|
+
end
|
147
|
+
|
141
148
|
# Mandatory
|
142
149
|
opts.on("-t", "--target TARGET",
|
143
150
|
"ETA/OS target architecture") do |arch|
|
@@ -179,20 +186,16 @@ module Zeno
|
|
179
186
|
exit
|
180
187
|
end
|
181
188
|
|
182
|
-
|
183
|
-
|
184
|
-
|
189
|
+
opts = Hash.new
|
190
|
+
opts['apps'] = options.apps
|
191
|
+
opts['name'] = options.name
|
192
|
+
opts['ref'] = options.version
|
193
|
+
opts['libs'] = options.libdir
|
194
|
+
opts['path'] = options.path
|
195
|
+
opts['target'] = options.target
|
185
196
|
|
186
|
-
|
187
|
-
|
188
|
-
scaffolder = Zeno::Scaffolder.new(options.name, etaos_path,
|
189
|
-
options.libdir, options.target)
|
190
|
-
scaffolder.create
|
191
|
-
scaffolder.generate
|
192
|
-
rescue ApplicationAlreadyExistsError => e
|
193
|
-
puts "Error: #{e.message}"
|
194
|
-
exit
|
195
|
-
end
|
197
|
+
solution = Zeno::Solution.new(opts)
|
198
|
+
solution.create
|
196
199
|
end
|
197
200
|
|
198
201
|
# Start the app subcommand.
|
@@ -266,7 +269,7 @@ module Zeno
|
|
266
269
|
end
|
267
270
|
|
268
271
|
begin
|
269
|
-
scaffolder = Zeno::
|
272
|
+
scaffolder = Zeno::Application.new(options.name, options.epath,
|
270
273
|
options.libdir, options.target)
|
271
274
|
scaffolder.create
|
272
275
|
scaffolder.generate
|
@@ -311,7 +314,7 @@ module Zeno
|
|
311
314
|
silly_name = nil
|
312
315
|
ref = Zeno.parse_target(target)
|
313
316
|
ref.strip!
|
314
|
-
uri = URI("https://git.bietje.net/etaos/etaos/
|
317
|
+
uri = URI("https://git.bietje.net/etaos/etaos/archive/#{ref}.zip")
|
315
318
|
http = Net::HTTP.new(uri.host, uri.port)
|
316
319
|
http.use_ssl = true
|
317
320
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zeno
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michel Megens
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -82,10 +82,11 @@ extra_rdoc_files: []
|
|
82
82
|
files:
|
83
83
|
- bin/zeno
|
84
84
|
- lib/zeno.rb
|
85
|
+
- lib/zeno/application.rb
|
85
86
|
- lib/zeno/applicationalreadyexistserror.rb
|
86
87
|
- lib/zeno/filegenerator.rb
|
87
88
|
- lib/zeno/makefile.rb
|
88
|
-
- lib/zeno/
|
89
|
+
- lib/zeno/solution.rb
|
89
90
|
- lib/zeno/version.rb
|
90
91
|
homepage: http://bietje.net/zeno
|
91
92
|
licenses:
|
@@ -107,9 +108,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
108
|
version: '0'
|
108
109
|
requirements: []
|
109
110
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.
|
111
|
+
rubygems_version: 2.2.2
|
111
112
|
signing_key:
|
112
113
|
specification_version: 4
|
113
114
|
summary: ETA/OS scaffolder
|
114
115
|
test_files: []
|
115
|
-
has_rdoc:
|