ecic 0.6.1 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2227c73d15fbf63a514a2cc236f1162e90215ebc30a703b9f36dc99b1289a57e
4
- data.tar.gz: 60e8e2010800a08549c8a96b1d173d491352e7dce15fa54d1cac00ee32393924
3
+ metadata.gz: c6b9cbccccd5b2673f19c2784227f75efa75bd5dcaa10ec4255dc761b6633ab6
4
+ data.tar.gz: 5489f7e5ea4cf76bfc226a04db97770306034fffb3a711f5887d995a5958c64e
5
5
  SHA512:
6
- metadata.gz: 3614ce591502c236baff92a49a616dc2112690ab8b26e93cd8220e216a159642fd830f38415f41240c6cf2b27882044c9896c442da8402c3bbc0397ed56cb4b8
7
- data.tar.gz: 44854b5887f98249e5454adc925ca964f93f09912fd22fa6c8785b6e7c4f513c1e01b133adb7d041c5ed6517be844bef89028a99179d86fadaf3bd39148e4dc1
6
+ metadata.gz: f2179977315b2f98d5ce51935b28f28ac423a2425ef8bd98ebb71c08fd0fa6efadce9ddaf2daa32cf015300606cbc55998345c08ff59077fc6f77c96fd0673a5
7
+ data.tar.gz: 64c591e207d601b42861694790e91005eb2b8fff36d9ee22c9d892a4aca340d802c82123dceba1c68f00e9d83c82c268ee758767d6d4d619e3de425b7f285930
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ecic (0.5.0)
4
+ ecic (0.6.2)
5
5
  activesupport (~> 5.2)
6
6
  colorize (~> 0.8)
7
7
  rake (~> 12.3)
@@ -22,7 +22,7 @@ GEM
22
22
  concurrent-ruby (1.0.5)
23
23
  diff-lcs (1.3)
24
24
  docile (1.1.5)
25
- i18n (1.1.0)
25
+ i18n (1.1.1)
26
26
  concurrent-ruby (~> 1.0)
27
27
  json (2.1.0)
28
28
  minitest (5.11.3)
data/README.md CHANGED
@@ -32,7 +32,7 @@ The `ecic new` command creates a new ECIC project with a default directory struc
32
32
 
33
33
  $ ecic new my_project
34
34
 
35
- and the install the dependencies for your new project using Bundler:
35
+ and then install the dependencies for your new project using Bundler:
36
36
 
37
37
  $ cd ./my_project
38
38
  $ bundle install
@@ -215,5 +215,3 @@ To install the ECIC framework onto your local machine, run `bundle exec rake ins
215
215
  5. Create new Pull Request
216
216
 
217
217
  Bug reports and pull requests are most welcome on GitHub at https://github.com/ic-factory/ecic.
218
-
219
-
@@ -51,9 +51,9 @@ help:
51
51
  eval $(ecic completion script)
52
52
 
53
53
  addfile:
54
- short: Add existing design and testbench files to the project!
54
+ short: Add existing design and testbench files to the project
55
55
  long: |
56
- Add one or more existing design files to a given library in the project!
56
+ Add one or more existing design files to a given library in the project
57
57
 
58
58
  Example: ecic addfile --lib=my_lib ./foo/bar/some_design.sv ../toto/kuku.vhd
59
59
 
@@ -66,8 +66,12 @@ help:
66
66
 
67
67
  If an added file is located outside the project folder, an absolute path will be used by default.
68
68
 
69
+ project:
70
+ short: Print various information about your project
71
+ root:
72
+ short: Print path to the root directory of your project
69
73
  generate:
70
- short: Generate new testbenches, RTL modules, tests etc.!
74
+ short: Generate new testbenches, RTL modules, tests etc.
71
75
 
72
76
  testbench:
73
77
  short: Create a new testbench
@@ -24,6 +24,7 @@ module Ecic
24
24
  autoload :FileAdder, "ecic/file_adder"
25
25
  autoload :Completion, "ecic/completion"
26
26
  autoload :Completer, "ecic/completer"
27
+ autoload :ProjectCmd, "ecic/project_cmd"
27
28
  autoload :DesignGenerator, "ecic/design_generator"
28
29
  autoload :SvDesignGenerator, "ecic/sv_design_generator"
29
30
  autoload :ProjectGenerator, "ecic/project_generator"
@@ -8,9 +8,10 @@ module Ecic
8
8
  shell.say "Usage: ecic COMMAND [ARGS]"
9
9
  shell.say ""
10
10
  super
11
- shell.say "To get more help on a specific command, try 'ecic help [COMMAND]'"
11
+ shell.say "Commands may be abbreviated, so long as they are unambiguous."
12
+ shell.say "E.g. 'ecic p r' is short for 'ecic project root'."
13
+ shell.say "\nTo get more help on a specific command, try 'ecic help [COMMAND]'"
12
14
  end
13
-
14
15
  end
15
16
 
16
17
  check_unknown_options!
@@ -48,7 +49,12 @@ module Ecic
48
49
  desc "generate SUBCOMMAND ...ARGS", Help.text('generate')['short']
49
50
  subcommand "generate", Generate
50
51
 
51
-
52
+ #--------------------------------------------------------------------------
53
+ # PROJECT command:
54
+ #--------------------------------------------------------------------------
55
+ desc "project SUBCOMMAND ...ARGS", Help.text('project')['short']
56
+ subcommand "project", ProjectCmd
57
+
52
58
  #--------------------------------------------------------------------------
53
59
  # design generator:
54
60
  #--------------------------------------------------------------------------
@@ -80,10 +86,8 @@ module Ecic
80
86
  shell.error set_color(exc.message, Thor::Shell::Color::RED)
81
87
  exit(3)
82
88
  end
83
-
84
89
  end
85
90
 
86
-
87
91
  #--------------------------------------------------------------------------
88
92
  # COMPLETION command:
89
93
  #--------------------------------------------------------------------------
@@ -109,7 +113,7 @@ module Ecic
109
113
  def version
110
114
  say "#{VERSION}"
111
115
  end
112
-
116
+
113
117
  #--------------------------------------------------------------------------
114
118
  # LIBRARIES command:
115
119
  #--------------------------------------------------------------------------
@@ -118,29 +122,36 @@ module Ecic
118
122
  option :format, :type => :string, :banner => 'text|json', :desc => 'Specify the output format'
119
123
  option :include_source_files, :type => :boolean, :aliases => '-s', :desc => "Include source files for each library"
120
124
  def libraries
121
- defaults = {
122
- "format" => "text",
123
- "include_source_files" => false
124
- }
125
- opt = defaults.merge(options)
126
-
127
- root_dir = Project::root
128
- if root_dir.nil?
129
- shell.error set_color("You must be within an ECIC project before calling this command",Thor::Shell::Color::RED)
125
+ begin
126
+ defaults = {
127
+ "format" => "text",
128
+ "include_source_files" => false
129
+ }
130
+ opt = defaults.merge(options)
131
+
132
+ root_dir = Project::root
133
+ if root_dir.nil?
134
+ shell.error set_color("You must be within an ECIC project before calling this command",Thor::Shell::Color::RED)
135
+ exit(3)
136
+ end
137
+ project = Project.new(root_dir)
138
+ project.load_libraries
139
+ if opt['include_source_files']
140
+ project.load_sources
141
+ end
142
+ if opt['format'] == 'json'
143
+ require 'json'
144
+ say project.libraries.map{ |lib| lib.to_json(:include_source_files => opt['include_source_files']) }.join(",")
145
+ else
146
+ say project.libraries.map{ |lib| lib.to_s(:include_source_files => opt['include_source_files']) }.join("\n")
147
+ end
148
+
149
+ rescue Exception => exc
150
+ shell.error set_color(exc.message, Thor::Shell::Color::RED)
130
151
  exit(3)
131
152
  end
132
- project = Project.new(root_dir)
133
- project.load_libraries
134
- if opt['include_source_files']
135
- # puts "reading source files..."
136
- project.load_sources
137
- end
138
- if opt['format'] == 'json'
139
- require 'json'
140
- say project.libraries.map{ |lib| lib.to_json(:include_source_files => opt['include_source_files']) }.join(",")
141
- else
142
- say project.libraries.map{ |lib| lib.to_s(:include_source_files => opt['include_source_files']) }.join("\n")
143
- end
153
+
154
+
144
155
  end
145
156
  end
146
- end
157
+ end
@@ -8,9 +8,9 @@ module Ecic
8
8
  attr_accessor :library_name, :file_names, :project
9
9
 
10
10
  def add_files_to_source_list
11
- #If a library name is given, then the project must already contain a library with that
12
- #name. Otherwise an error message must be returned, because we do not know if it is a
13
- #design or testbench library.
11
+ #If a library name is given, the project must already contain a library
12
+ #with that name. Otherwise an error message must be returned, because we
13
+ #do not know if it is a design or testbench library.
14
14
  unless library_name.nil?
15
15
  library = project.get_library(library_name)
16
16
  raise "Unknown library called '#{library_name}'. Please create the library before adding files to it. " if library.nil?
@@ -18,8 +18,7 @@ module Ecic
18
18
  destination_path = Pathname.new(destination_root)
19
19
  file_names.each { |file_name|
20
20
  src_file_info = SourceFileInfo.new(project, file_name, library)
21
- raise "Library name could not be determined from the path of '#{file_name}'. Make sure the appropriate library has been created and specify it with the --lib option." if src_file_info.library.nil?
22
- # puts "lib name=#{src_file_info.library.name}, lib_path = #{src_file_info.library.path}"
21
+ raise "Library name could not be determined from the path of '#{file_name}'.\nMake sure the appropriate library has been created and specify it with the --lib option - or create an empty sources.rb file in the root directory of the library." if src_file_info.library.nil?
23
22
  if create_library_if_missing(src_file_info.library)
24
23
  add_src_file(src_file_info, destination_path)
25
24
  else
@@ -42,11 +42,11 @@ module Ecic::LibraryCreationHelper
42
42
  when nil
43
43
  say ""
44
44
  return true
45
- when is?(:yes), is?(:all), ""
45
+ when is?(:yes), ""
46
46
  return true
47
47
  when is?(:no), is?(:skip)
48
48
  return false
49
- when is?(:always)
49
+ when is?(:all)
50
50
  return @always_create_library = true
51
51
  when is?(:quit)
52
52
  say "Aborting..."
@@ -0,0 +1,23 @@
1
+ module Ecic
2
+ class ProjectCmd < Command
3
+
4
+ #--------------------------------------------------------------------------
5
+ # project root:
6
+ #--------------------------------------------------------------------------
7
+ desc "rootdir", Help.text('project')['root']['short']
8
+ def rootdir
9
+ begin
10
+ project_root_path = Ecic::Project::root
11
+ if project_root_path.nil?
12
+ shell.error set_color("You must be within an ECIC project before calling this command",Thor::Shell::Color::RED)
13
+ exit(1)
14
+ else
15
+ say project_root_path
16
+ end
17
+ rescue Exception => exc
18
+ shell.error set_color(exc.message,Thor::Shell::Color::RED)
19
+ exit(3)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -85,7 +85,7 @@ module Ecic
85
85
  when "src/design"
86
86
  return :design
87
87
  else
88
- return nil
88
+ return :design
89
89
  end
90
90
  end
91
91
 
@@ -1,3 +1,3 @@
1
1
  module Ecic
2
- VERSION = "0.6.1"
2
+ VERSION = "0.6.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Torben Fox Jacobsen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-01 00:00:00.000000000 Z
11
+ date: 2018-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -149,6 +149,7 @@ files:
149
149
  - lib/ecic/library.rb
150
150
  - lib/ecic/library_generator.rb
151
151
  - lib/ecic/project.rb
152
+ - lib/ecic/project_cmd.rb
152
153
  - lib/ecic/project_generator.rb
153
154
  - lib/ecic/source_file.rb
154
155
  - lib/ecic/source_file_info.rb