origen 0.25.0 → 0.25.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 +4 -4
- data/config/version.rb +1 -1
- data/lib/origen.rb +0 -4
- data/lib/origen/commands.rb +1 -1
- data/lib/origen/core_ext/fixnum.rb +10 -0
- metadata +1 -2
- data/lib/origen/commands/gem.rb +0 -270
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 164ff1785465c05f948cea646a845c30d9501318
|
4
|
+
data.tar.gz: 572cfdfd8d006b70e8b447789530284d99a1d391
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5bb8de8859693e4ba457f555709dca46200ddccccbde5ea382b6099ba2ee22e8e90d72c9ddc7aaa1fb5dd2e54bb535925df9455017c7ad5dc889eacbfd40afe
|
7
|
+
data.tar.gz: 6a96a68b9d08642282b489d0f6d08596fcee33fed04c41264b66bdaa836ad21130b370213b564fac1fe3db842feb8985b3f82c421417d28114a351602f0beb9d
|
data/config/version.rb
CHANGED
data/lib/origen.rb
CHANGED
@@ -159,10 +159,6 @@ unless defined? RGen::ORIGENTRANSITION
|
|
159
159
|
end
|
160
160
|
alias_method :application!, :app!
|
161
161
|
|
162
|
-
def has_plugin?(plugin)
|
163
|
-
_applications_lookup[:name][plugin.to_sym].nil? ? false : true
|
164
|
-
end
|
165
|
-
|
166
162
|
# @api private
|
167
163
|
def with_source_file(file)
|
168
164
|
@current_source_dir = Pathname.new(file).dirname
|
data/lib/origen/commands.rb
CHANGED
@@ -228,7 +228,7 @@ end.compact
|
|
228
228
|
|
229
229
|
case @command
|
230
230
|
when 'generate', 'program', 'compile', 'merge', 'interactive', 'target', 'environment',
|
231
|
-
'save', 'lsf', 'web', 'time', 'dispatch', 'rc', 'lint', 'plugin', 'fetch', 'mode'
|
231
|
+
'save', 'lsf', 'web', 'time', 'dispatch', 'rc', 'lint', 'plugin', 'fetch', 'mode' # , 'add'
|
232
232
|
|
233
233
|
require "origen/commands/#{@command}"
|
234
234
|
exit 0 unless @command == 'interactive'
|
@@ -43,4 +43,14 @@ class Fixnum
|
|
43
43
|
return nil
|
44
44
|
end
|
45
45
|
end
|
46
|
+
|
47
|
+
def to_spreadsheet_column
|
48
|
+
index_hash = Hash.new { |hash, key| hash[key] = hash[key - 1].next }.merge(0 => 'A')
|
49
|
+
index_hash[self]
|
50
|
+
end
|
51
|
+
alias_method :to_xls_column, :to_spreadsheet_column
|
52
|
+
alias_method :to_xlsx_column, :to_spreadsheet_column
|
53
|
+
alias_method :to_xls_col, :to_spreadsheet_column
|
54
|
+
alias_method :to_xlsx_col, :to_spreadsheet_column
|
55
|
+
alias_method :to_spreadsheet_col, :to_spreadsheet_column
|
46
56
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: origen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.25.
|
4
|
+
version: 0.25.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen McGinty
|
@@ -421,7 +421,6 @@ files:
|
|
421
421
|
- lib/origen/commands/compile.rb
|
422
422
|
- lib/origen/commands/environment.rb
|
423
423
|
- lib/origen/commands/fetch.rb
|
424
|
-
- lib/origen/commands/gem.rb
|
425
424
|
- lib/origen/commands/generate.rb
|
426
425
|
- lib/origen/commands/helpers.rb
|
427
426
|
- lib/origen/commands/interactive.rb
|
data/lib/origen/commands/gem.rb
DELETED
@@ -1,270 +0,0 @@
|
|
1
|
-
require 'optparse'
|
2
|
-
require 'fileutils'
|
3
|
-
require 'rubygems'
|
4
|
-
require 'origen/version_string'
|
5
|
-
|
6
|
-
include Origen::Utility::InputCapture
|
7
|
-
|
8
|
-
options = {}
|
9
|
-
|
10
|
-
opt_parser = OptionParser.new do |opts|
|
11
|
-
opts.banner = <<-END
|
12
|
-
Usage: origen gem
|
13
|
-
origen gem gem_name [option]
|
14
|
-
origen gem fetch gem_name
|
15
|
-
origen gem clean (gem_name|all)
|
16
|
-
|
17
|
-
Quickstart Examples:
|
18
|
-
origen gem # Displays the list of currently used gems
|
19
|
-
origen gem gem_name # Displays details of specified gem
|
20
|
-
origen gem fetch gem name # Poluates/copies gem source to a local repo (<application_top_level_path>/tmp/gems)
|
21
|
-
# and updates Gemfile to use local copy
|
22
|
-
origen gem clean (gem_name|all) # Removes/deletes the local copy of the gem source and updated Gemfile to
|
23
|
-
# use originally specified version/path
|
24
|
-
|
25
|
-
The following options are available:
|
26
|
-
END
|
27
|
-
opts.on('--location', 'Display the location of the specified gem') { options[:gem_location] = true }
|
28
|
-
opts.on('--version', 'Display the version of the specified gem') { options[:gem_version] = true }
|
29
|
-
opts.on('-h', '--help', 'Show this message') { puts opts; exit }
|
30
|
-
end
|
31
|
-
|
32
|
-
opt_parser.parse! ARGV
|
33
|
-
|
34
|
-
QUIET_ATTRS = %w(
|
35
|
-
files test_files signing_key licenses rdoc_options
|
36
|
-
autorequire cert_chain post_install_message
|
37
|
-
)
|
38
|
-
|
39
|
-
def self._local_gems
|
40
|
-
gems = {}
|
41
|
-
Gem::Specification.sort_by { |g| [g.name.downcase, g.version] }.group_by(&:name).map do |name, specs|
|
42
|
-
gems[name.to_sym] = {
|
43
|
-
name: name,
|
44
|
-
version: specs.map(&:version).join(','),
|
45
|
-
location: specs.map(&:full_gem_path).join(','),
|
46
|
-
authors: specs.map(&:authors).join(',')
|
47
|
-
}
|
48
|
-
end
|
49
|
-
gems
|
50
|
-
end
|
51
|
-
|
52
|
-
def self._local_gems_orig
|
53
|
-
Gem::Specification.sort_by { |g| [g.name.downcase, g.version] }.group_by(&:name)
|
54
|
-
end
|
55
|
-
|
56
|
-
def self._session_gem_path
|
57
|
-
"#{Origen.app.root}/tmp/gems"
|
58
|
-
end
|
59
|
-
|
60
|
-
def self._application_gemfile
|
61
|
-
"#{Origen.app.root}/Gemfile"
|
62
|
-
end
|
63
|
-
|
64
|
-
def self._local_path_to_gem(gem)
|
65
|
-
"#{_session_gem_path}/#{Pathname(gem[:location]).basename}"
|
66
|
-
end
|
67
|
-
|
68
|
-
def self._gem_basename(gem)
|
69
|
-
"#{Pathname(gem[:location]).basename}"
|
70
|
-
end
|
71
|
-
|
72
|
-
def self._gem_rc_version(gem)
|
73
|
-
gem[:version]
|
74
|
-
end
|
75
|
-
|
76
|
-
def self._update_gemfile
|
77
|
-
content = File.read(_application_gemfile)
|
78
|
-
|
79
|
-
search_regexp = "# ORIGEN GEM AUTO-GENERATED.*# /ORIGEN GEM AUTO-GENERATED.*?\n"
|
80
|
-
|
81
|
-
if Origen.app.session.gems.keys.empty?
|
82
|
-
new_contents = content.gsub(/#{search_regexp}/m, '')
|
83
|
-
else
|
84
|
-
replacement_string = "# ORIGEN GEM AUTO-GENERATED---------------DO NOT REMOVE THIS LINE-------------\n"
|
85
|
-
replacement_string += "# -- DO NOT CHECK IN WITH THIS SECTION!\n"
|
86
|
-
replacement_string += "# -- DO NOT HAND MODIFY!\n"
|
87
|
-
replacement_string += "# -- USE 'origen gem clean all' to reset\n"
|
88
|
-
replacement_string += "\n"
|
89
|
-
|
90
|
-
Origen.app.session.gems.keys.sort.each do |g|
|
91
|
-
replacement_string += "gem '#{g}', path: '#{Origen.app.session.gems[g.to_sym]}'\n"
|
92
|
-
replacement_string += "puts \"\\e[1;93;40mWARNING: Using session gem for '#{g}'\\e[0m\"\n"
|
93
|
-
end
|
94
|
-
|
95
|
-
replacement_string += "def gem(*args)\n"
|
96
|
-
replacement_string += " return if [#{Origen.app.session.gems.keys.sort.map { |e| "'" + e.to_s + "'" }.join(',')}].include? args[0]\n"
|
97
|
-
replacement_string += " super(*args)\n"
|
98
|
-
replacement_string += "end\n"
|
99
|
-
replacement_string += "#\n"
|
100
|
-
replacement_string += "# /ORIGEN GEM AUTO-GENERATED---------------DO NOT REMOVE THIS LINE------------\n"
|
101
|
-
|
102
|
-
if content =~ /#{search_regexp}/m
|
103
|
-
new_contents = content.gsub(/#{search_regexp}/m, replacement_string)
|
104
|
-
else
|
105
|
-
new_contents = replacement_string + content
|
106
|
-
end
|
107
|
-
end
|
108
|
-
File.open(_application_gemfile, 'w') { |file| file.puts new_contents }
|
109
|
-
end
|
110
|
-
|
111
|
-
gems = _local_gems
|
112
|
-
|
113
|
-
if !ARGV[0]
|
114
|
-
longest_key = gems.keys.max_by(&:length)
|
115
|
-
puts ''
|
116
|
-
printf "%-#{longest_key.length}s %-15s %s\n", 'Gem', 'Version', 'Location'
|
117
|
-
puts '--------------------------------------------------------------------------------------------------------------'
|
118
|
-
gems.each do |k, v|
|
119
|
-
printf "%-#{longest_key.length}s %-15s %s\n", k, v[:version], v[:location]
|
120
|
-
end
|
121
|
-
puts ''
|
122
|
-
else
|
123
|
-
case input = ARGV.shift
|
124
|
-
when 'clean'
|
125
|
-
gem = ARGV[0]
|
126
|
-
if gem
|
127
|
-
if gem == 'all'
|
128
|
-
if Dir.exist? _session_gem_path
|
129
|
-
puts ''
|
130
|
-
puts 'You are about to delete all local gems (tmp/gems/). IS THAT CORRECT?'
|
131
|
-
puts ''
|
132
|
-
get_text confirm: true
|
133
|
-
Origen::Log.console_only do
|
134
|
-
Dir.chdir Origen.root do
|
135
|
-
system("rm -fr #{_session_gem_path}")
|
136
|
-
end
|
137
|
-
end
|
138
|
-
unless Origen.app.session.gems.keys.empty?
|
139
|
-
Origen.app.session.gems.keys.sort.each do |g|
|
140
|
-
Origen.app.session.gems.delete_key(g)
|
141
|
-
end
|
142
|
-
_update_gemfile
|
143
|
-
end
|
144
|
-
else
|
145
|
-
puts 'There are no local gems present, nothing to clean.'
|
146
|
-
end
|
147
|
-
elsif gems.key?(gem.to_sym)
|
148
|
-
if Dir.exist? _local_path_to_gem(gems[gem.to_sym])
|
149
|
-
# check if already exists, ask for permission to blow away
|
150
|
-
puts ''
|
151
|
-
puts "You are about to delete the local copy of '#{gem}' (tmp/gems/#{_gem_basename(gems[gem.to_sym])}). IS THAT CORRECT?"
|
152
|
-
puts ''
|
153
|
-
get_text confirm: true
|
154
|
-
Origen::Log.console_only do
|
155
|
-
Dir.chdir Origen.root do
|
156
|
-
system("rm -fr #{_local_path_to_gem(gems[gem.to_sym])}")
|
157
|
-
end
|
158
|
-
end
|
159
|
-
Origen.app.session.gems.delete_key(gem.to_sym)
|
160
|
-
_update_gemfile
|
161
|
-
else
|
162
|
-
puts "Gem '#{gem}' is not locally present, nothing to clean."
|
163
|
-
end
|
164
|
-
end
|
165
|
-
else
|
166
|
-
puts "Error: Must specify gem to be cleaned or 'all'. Use 'origen gem -h' for usage"
|
167
|
-
end
|
168
|
-
when 'fetch'
|
169
|
-
gem = ARGV[0]
|
170
|
-
if gem
|
171
|
-
if gems.key?(gem.to_sym)
|
172
|
-
# Initialize ./tmp/gems/
|
173
|
-
FileUtils.mkdir_p(_session_gem_path) unless Dir.exist? _session_gem_path
|
174
|
-
|
175
|
-
if Dir.exist? _local_path_to_gem(gems[gem.to_sym])
|
176
|
-
# check if already exists, ask for permission to blow away
|
177
|
-
puts ''
|
178
|
-
puts "Gem '#{_gem_basename(gems[gem.to_sym])}' already exists locally, would you like to replace?"
|
179
|
-
puts "(This will delete and replace the exising copy at #{_local_path_to_gem(gems[gem.to_sym])})"
|
180
|
-
puts ''
|
181
|
-
get_text confirm: true
|
182
|
-
Origen::Log.console_only do
|
183
|
-
Dir.chdir Origen.root do
|
184
|
-
# Blow away these temporary files
|
185
|
-
system("rm -fr #{_local_path_to_gem(gems[gem.to_sym])}")
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
if Origen.has_plugin?(gem)
|
191
|
-
# Set up the requested plugin workspace
|
192
|
-
rc_url = Origen.app(gem.to_sym).config.rc_url || Origen.app(gem.to_sym).config.vault
|
193
|
-
if rc_url =~ /git/
|
194
|
-
Origen::RevisionControl::Git.git("clone #{rc_url} #{_gem_basename(gems[gem.to_sym])}", local: _session_gem_path, verbose: true)
|
195
|
-
else
|
196
|
-
# Use Origen::RevisionControl for DesignSync
|
197
|
-
rc = Origen::RevisionControl.new remote: rc_url, local: _local_path_to_gem(gems[gem.to_sym])
|
198
|
-
tag = Origen::VersionString.new(_gem_rc_version(gems[gem.to_sym]))
|
199
|
-
tag = tag.prefixed if tag.semantic?
|
200
|
-
rc.build version: tag
|
201
|
-
end
|
202
|
-
else
|
203
|
-
puts 'Not an Origen plugin gem, only COPYING source.'
|
204
|
-
FileUtils.cp_r(gems[gem.to_sym][:location], _session_gem_path)
|
205
|
-
end
|
206
|
-
|
207
|
-
# FileUtils.cp_r(gems[gem.to_sym][:location], _session_gem_path)
|
208
|
-
unless options[:dont_use]
|
209
|
-
Origen.app.session.gems[gem.to_sym] = "#{_local_path_to_gem(gems[gem.to_sym])}"
|
210
|
-
end
|
211
|
-
|
212
|
-
_update_gemfile
|
213
|
-
|
214
|
-
puts "Fetched #{gem} to tmp/gems/#{_gem_basename(gems[gem.to_sym])}"
|
215
|
-
puts ''
|
216
|
-
# puts 'Please add the following to your Gemfile:'
|
217
|
-
# puts ''
|
218
|
-
# puts "gem '#{gem}', path: '#{_local_path_to_gem(gems[gem.to_sym])}'"
|
219
|
-
# puts ''
|
220
|
-
else
|
221
|
-
puts "Error: '#{gem}' is not a currently used gem. Use 'origen gem' for gem list."
|
222
|
-
end
|
223
|
-
else
|
224
|
-
puts "Error: Must specify gem to be fetched. Use 'origen gem -h' for usage"
|
225
|
-
end
|
226
|
-
# when 'reset'
|
227
|
-
# gem = ARGV[0]
|
228
|
-
# if gem
|
229
|
-
# puts "Resetting #{gem} to Gemfile/gemspec"
|
230
|
-
# else
|
231
|
-
# puts "Error: Must specify gem to be cleaned or 'all'"
|
232
|
-
# end
|
233
|
-
else
|
234
|
-
gem = input
|
235
|
-
if gems.key?(gem.to_sym)
|
236
|
-
a = _local_gems_orig[gem].to_yaml.split(/\n+/)
|
237
|
-
skip = true
|
238
|
-
|
239
|
-
if options[:gem_location] || options[:gem_version]
|
240
|
-
puts '================================================================================='
|
241
|
-
puts "Gem Name: #{gems[gem.to_sym][:name]}"
|
242
|
-
puts "Version: #{gems[gem.to_sym][:version]}" if options[:gem_version]
|
243
|
-
puts "Location: #{gems[gem.to_sym][:location]}" if options[:gem_location]
|
244
|
-
puts '================================================================================='
|
245
|
-
else
|
246
|
-
puts '================================================================================='
|
247
|
-
puts "Gem Name: #{gems[gem.to_sym][:name]}"
|
248
|
-
puts "Version: #{gems[gem.to_sym][:version]}"
|
249
|
-
puts "Location: #{gems[gem.to_sym][:location]}"
|
250
|
-
puts '---------------------------------------------------------------------------------'
|
251
|
-
puts 'Details:'
|
252
|
-
a.each do |line|
|
253
|
-
if line =~ /^ (\w+):(.*)$/
|
254
|
-
topic = Regexp.last_match(1)
|
255
|
-
if QUIET_ATTRS.include? topic
|
256
|
-
skip = true
|
257
|
-
else
|
258
|
-
skip = false
|
259
|
-
end
|
260
|
-
end
|
261
|
-
puts " #{line}" unless skip
|
262
|
-
end
|
263
|
-
puts '---------------------------------------------------------------------------------'
|
264
|
-
puts '================================================================================='
|
265
|
-
end
|
266
|
-
else
|
267
|
-
puts "Error: '#{gem}' not a valid command or gem. Use 'origen gem -h' for usage or 'origen gem' for gem list."
|
268
|
-
end
|
269
|
-
end
|
270
|
-
end
|