origen 0.0.1 → 0.0.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.
Files changed (336) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ctags +0 -0
  3. data/bin/origen +165 -1
  4. data/bin/rgen +2 -0
  5. data/config/application.rb +141 -0
  6. data/config/commands.rb +72 -0
  7. data/config/development.rb +7 -0
  8. data/config/environment.rb +0 -0
  9. data/config/rgen.policy +7 -0
  10. data/config/rubocop/easy.yml +620 -0
  11. data/config/rubocop/easy_disabled.yml +271 -0
  12. data/config/rubocop/easy_enabled.yml +731 -0
  13. data/config/rubocop/strict.yml +620 -0
  14. data/config/rubocop/strict_disabled.yml +247 -0
  15. data/config/rubocop/strict_enabled.yml +755 -0
  16. data/config/users.rb +20 -0
  17. data/config/version.rb +1 -1
  18. data/helpers/url.rb +68 -0
  19. data/lib/c99/doc_interface.rb +56 -0
  20. data/lib/c99/j750_interface.rb +85 -0
  21. data/lib/c99/nvm.rb +89 -0
  22. data/lib/c99/target/mock2.rb +1 -0
  23. data/lib/c99/target/subdir/mock3.rb +1 -0
  24. data/lib/option_parser/optparse.rb +12 -0
  25. data/lib/origen/acronyms.rb +60 -0
  26. data/lib/origen/application/command_dispatcher.rb +12 -0
  27. data/lib/origen/application/configuration.rb +206 -0
  28. data/lib/origen/application/configuration_manager.rb +78 -0
  29. data/lib/origen/application/deployer.rb +367 -0
  30. data/lib/origen/application/environment.rb +186 -0
  31. data/lib/origen/application/lsf.rb +145 -0
  32. data/lib/origen/application/lsf_manager.rb +657 -0
  33. data/lib/origen/application/plugins_manager.rb +280 -0
  34. data/lib/origen/application/release.rb +359 -0
  35. data/lib/origen/application/runner.rb +246 -0
  36. data/lib/origen/application/statistics.rb +191 -0
  37. data/lib/origen/application/target.rb +374 -0
  38. data/lib/origen/application/version_tracker.rb +59 -0
  39. data/lib/origen/application/workspace_manager.rb +151 -0
  40. data/lib/origen/application.rb +746 -0
  41. data/lib/origen/bugs/bug.rb +36 -0
  42. data/lib/origen/bugs.rb +45 -0
  43. data/lib/origen/callbacks.rb +35 -0
  44. data/lib/origen/chip_mode.rb +118 -0
  45. data/lib/origen/chip_package.rb +461 -0
  46. data/lib/origen/client.rb +87 -0
  47. data/lib/origen/code_generators/actions.rb +258 -0
  48. data/lib/origen/code_generators/base.rb +57 -0
  49. data/lib/origen/code_generators/bundler.rb +17 -0
  50. data/lib/origen/code_generators/gem_setup.rb +49 -0
  51. data/lib/origen/code_generators/rake.rb +13 -0
  52. data/lib/origen/code_generators/rspec.rb +12 -0
  53. data/lib/origen/code_generators/semver.rb +39 -0
  54. data/lib/origen/code_generators/timever.rb +37 -0
  55. data/lib/origen/code_generators.rb +111 -0
  56. data/lib/origen/commands/add.rb +12 -0
  57. data/lib/origen/commands/compile.rb +62 -0
  58. data/lib/origen/commands/ctags.rb +9 -0
  59. data/lib/origen/commands/dispatch.rb +22 -0
  60. data/lib/origen/commands/environment.rb +11 -0
  61. data/lib/origen/commands/fetch.rb +63 -0
  62. data/lib/origen/commands/generate.rb +130 -0
  63. data/lib/origen/commands/interactive.rb +73 -0
  64. data/lib/origen/commands/lint.rb +82 -0
  65. data/lib/origen/commands/lsf.rb +93 -0
  66. data/lib/origen/commands/merge.rb +55 -0
  67. data/lib/origen/commands/modifications.rb +12 -0
  68. data/lib/origen/commands/new.rb +113 -0
  69. data/lib/origen/commands/plugin.rb +105 -0
  70. data/lib/origen/commands/program.rb +70 -0
  71. data/lib/origen/commands/rc.rb +442 -0
  72. data/lib/origen/commands/save.rb +56 -0
  73. data/lib/origen/commands/target.rb +27 -0
  74. data/lib/origen/commands/time.rb +127 -0
  75. data/lib/origen/commands/version.rb +17 -0
  76. data/lib/origen/commands/web.rb +221 -0
  77. data/lib/origen/commands.rb +272 -0
  78. data/lib/origen/commands_global.rb +76 -0
  79. data/lib/origen/controller.rb +94 -0
  80. data/lib/origen/core_ext/array.rb +23 -0
  81. data/lib/origen/core_ext/bignum.rb +36 -0
  82. data/lib/origen/core_ext/enumerable.rb +76 -0
  83. data/lib/origen/core_ext/fixnum.rb +46 -0
  84. data/lib/origen/core_ext/hash.rb +52 -0
  85. data/lib/origen/core_ext/module.rb +14 -0
  86. data/lib/origen/core_ext/numeric.rb +126 -0
  87. data/lib/origen/core_ext/object.rb +13 -0
  88. data/lib/origen/core_ext/range.rb +7 -0
  89. data/lib/origen/core_ext/string.rb +124 -0
  90. data/lib/origen/core_ext.rb +10 -0
  91. data/lib/origen/database/key_value_store.rb +111 -0
  92. data/lib/origen/database/key_value_stores.rb +108 -0
  93. data/lib/origen/database.rb +6 -0
  94. data/lib/origen/encodings.rb +102 -0
  95. data/lib/origen/features/feature.rb +22 -0
  96. data/lib/origen/features.rb +104 -0
  97. data/lib/origen/file_handler.rb +429 -0
  98. data/lib/origen/generator/comparator.rb +56 -0
  99. data/lib/origen/generator/compiler.rb +277 -0
  100. data/lib/origen/generator/flow.rb +49 -0
  101. data/lib/origen/generator/job.rb +131 -0
  102. data/lib/origen/generator/pattern.rb +356 -0
  103. data/lib/origen/generator/pattern_finder.rb +155 -0
  104. data/lib/origen/generator/pattern_iterator.rb +55 -0
  105. data/lib/origen/generator/renderer.rb +113 -0
  106. data/lib/origen/generator/resources.rb +40 -0
  107. data/lib/origen/generator/stage.rb +89 -0
  108. data/lib/origen/generator.rb +85 -0
  109. data/lib/origen/global_methods.rb +205 -0
  110. data/lib/origen/import_manager.rb +596 -0
  111. data/lib/origen/location/base.rb +116 -0
  112. data/lib/origen/location/map.rb +83 -0
  113. data/lib/origen/location.rb +6 -0
  114. data/lib/origen/log.rb +217 -0
  115. data/lib/origen/logger_methods.rb +56 -0
  116. data/lib/origen/mode.rb +61 -0
  117. data/lib/origen/model.rb +267 -0
  118. data/lib/origen/model_initializer.rb +45 -0
  119. data/lib/origen/nvm/block_array.rb +72 -0
  120. data/lib/origen/nvm.rb +6 -0
  121. data/lib/origen/parameters/live.rb +22 -0
  122. data/lib/origen/parameters/missing.rb +28 -0
  123. data/lib/origen/parameters/set.rb +144 -0
  124. data/lib/origen/parameters.rb +107 -0
  125. data/lib/origen/pdm.rb +218 -0
  126. data/lib/origen/pins/function_proxy.rb +36 -0
  127. data/lib/origen/pins/ground_pin.rb +6 -0
  128. data/lib/origen/pins/pin.rb +860 -0
  129. data/lib/origen/pins/pin_bank.rb +349 -0
  130. data/lib/origen/pins/pin_clock.rb +124 -0
  131. data/lib/origen/pins/pin_collection.rb +492 -0
  132. data/lib/origen/pins/pin_common.rb +206 -0
  133. data/lib/origen/pins/port.rb +268 -0
  134. data/lib/origen/pins/power_pin.rb +30 -0
  135. data/lib/origen/pins.rb +696 -0
  136. data/lib/origen/registers/bit.rb +562 -0
  137. data/lib/origen/registers/bit_collection.rb +787 -0
  138. data/lib/origen/registers/container.rb +288 -0
  139. data/lib/origen/registers/domain.rb +16 -0
  140. data/lib/origen/registers/reg.rb +1406 -0
  141. data/lib/origen/registers/reg_collection.rb +24 -0
  142. data/lib/origen/registers.rb +652 -0
  143. data/lib/origen/regression_manager.rb +251 -0
  144. data/lib/origen/remote_manager.rb +340 -0
  145. data/lib/origen/revision_control/base.rb +257 -0
  146. data/lib/origen/revision_control/design_sync.rb +276 -0
  147. data/lib/origen/revision_control/git.rb +243 -0
  148. data/lib/origen/revision_control/subversion.rb +6 -0
  149. data/lib/origen/revision_control.rb +44 -0
  150. data/lib/origen/ruby_version_check.rb +131 -0
  151. data/lib/origen/site_config.rb +61 -0
  152. data/lib/origen/specs/checkers.rb +103 -0
  153. data/lib/origen/specs/creation_info.rb +17 -0
  154. data/lib/origen/specs/doc_resource.rb +91 -0
  155. data/lib/origen/specs/exhibit.rb +17 -0
  156. data/lib/origen/specs/mode_select.rb +16 -0
  157. data/lib/origen/specs/note.rb +17 -0
  158. data/lib/origen/specs/override.rb +21 -0
  159. data/lib/origen/specs/power_supply.rb +13 -0
  160. data/lib/origen/specs/spec.rb +226 -0
  161. data/lib/origen/specs/version_history.rb +14 -0
  162. data/lib/origen/specs.rb +552 -0
  163. data/lib/origen/sub_blocks.rb +298 -0
  164. data/lib/origen/tester/api.rb +277 -0
  165. data/lib/origen/tester/bdm/bdm.rb +25 -0
  166. data/lib/origen/tester/command_based_tester.rb +46 -0
  167. data/lib/origen/tester/doc/doc.rb +226 -0
  168. data/lib/origen/tester/doc/generator/flow.rb +71 -0
  169. data/lib/origen/tester/doc/generator/flow_line.rb +203 -0
  170. data/lib/origen/tester/doc/generator/test.rb +68 -0
  171. data/lib/origen/tester/doc/generator/test_group.rb +66 -0
  172. data/lib/origen/tester/doc/generator/tests.rb +47 -0
  173. data/lib/origen/tester/doc/generator.rb +126 -0
  174. data/lib/origen/tester/doc/model.rb +162 -0
  175. data/lib/origen/tester/generator/flow_control_api.rb +606 -0
  176. data/lib/origen/tester/generator/identity_map.rb +25 -0
  177. data/lib/origen/tester/generator/placeholder.rb +13 -0
  178. data/lib/origen/tester/generator/test_numberer.rb +25 -0
  179. data/lib/origen/tester/generator.rb +271 -0
  180. data/lib/origen/tester/interface.rb +154 -0
  181. data/lib/origen/tester/j750/files.rb +45 -0
  182. data/lib/origen/tester/j750/generator/flow.rb +123 -0
  183. data/lib/origen/tester/j750/generator/flow_line.rb +288 -0
  184. data/lib/origen/tester/j750/generator/patgroup.rb +111 -0
  185. data/lib/origen/tester/j750/generator/patgroups.rb +41 -0
  186. data/lib/origen/tester/j750/generator/patset.rb +111 -0
  187. data/lib/origen/tester/j750/generator/patsets.rb +41 -0
  188. data/lib/origen/tester/j750/generator/templates/flow.txt.erb +9 -0
  189. data/lib/origen/tester/j750/generator/templates/instances.txt.erb +16 -0
  190. data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +8 -0
  191. data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +10 -0
  192. data/lib/origen/tester/j750/generator/test_instance.rb +846 -0
  193. data/lib/origen/tester/j750/generator/test_instance_group.rb +60 -0
  194. data/lib/origen/tester/j750/generator/test_instances.rb +182 -0
  195. data/lib/origen/tester/j750/generator.rb +203 -0
  196. data/lib/origen/tester/j750/j750.rb +845 -0
  197. data/lib/origen/tester/j750/j750_hpt.rb +35 -0
  198. data/lib/origen/tester/j750/parser/ac_spec.rb +11 -0
  199. data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
  200. data/lib/origen/tester/j750/parser/dc_spec.rb +36 -0
  201. data/lib/origen/tester/j750/parser/dc_specs.rb +50 -0
  202. data/lib/origen/tester/j750/parser/descriptions.rb +340 -0
  203. data/lib/origen/tester/j750/parser/flow.rb +111 -0
  204. data/lib/origen/tester/j750/parser/flow_line.rb +207 -0
  205. data/lib/origen/tester/j750/parser/flows.rb +23 -0
  206. data/lib/origen/tester/j750/parser/pattern_set.rb +94 -0
  207. data/lib/origen/tester/j750/parser/pattern_sets.rb +33 -0
  208. data/lib/origen/tester/j750/parser/test_instance.rb +322 -0
  209. data/lib/origen/tester/j750/parser/test_instances.rb +26 -0
  210. data/lib/origen/tester/j750/parser/timeset.rb +15 -0
  211. data/lib/origen/tester/j750/parser/timesets.rb +0 -0
  212. data/lib/origen/tester/j750/parser.rb +104 -0
  213. data/lib/origen/tester/jlink/jlink.rb +33 -0
  214. data/lib/origen/tester/parser/description_lookup.rb +64 -0
  215. data/lib/origen/tester/parser/searchable_array.rb +32 -0
  216. data/lib/origen/tester/parser/searchable_hash.rb +32 -0
  217. data/lib/origen/tester/parser.rb +24 -0
  218. data/lib/origen/tester/time.rb +338 -0
  219. data/lib/origen/tester/timing.rb +253 -0
  220. data/lib/origen/tester/ultraflex/files.rb +45 -0
  221. data/lib/origen/tester/ultraflex/generator/flow.rb +119 -0
  222. data/lib/origen/tester/ultraflex/generator/flow_line.rb +269 -0
  223. data/lib/origen/tester/ultraflex/generator/patgroup.rb +111 -0
  224. data/lib/origen/tester/ultraflex/generator/patgroups.rb +41 -0
  225. data/lib/origen/tester/ultraflex/generator/patset.rb +111 -0
  226. data/lib/origen/tester/ultraflex/generator/patsets.rb +41 -0
  227. data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +9 -0
  228. data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +16 -0
  229. data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +8 -0
  230. data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +10 -0
  231. data/lib/origen/tester/ultraflex/generator/test_instance.rb +622 -0
  232. data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +60 -0
  233. data/lib/origen/tester/ultraflex/generator/test_instances.rb +174 -0
  234. data/lib/origen/tester/ultraflex/generator.rb +200 -0
  235. data/lib/origen/tester/ultraflex/parser/ac_spec.rb +11 -0
  236. data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
  237. data/lib/origen/tester/ultraflex/parser/dc_spec.rb +36 -0
  238. data/lib/origen/tester/ultraflex/parser/dc_specs.rb +50 -0
  239. data/lib/origen/tester/ultraflex/parser/descriptions.rb +342 -0
  240. data/lib/origen/tester/ultraflex/parser/flow.rb +111 -0
  241. data/lib/origen/tester/ultraflex/parser/flow_line.rb +207 -0
  242. data/lib/origen/tester/ultraflex/parser/flows.rb +23 -0
  243. data/lib/origen/tester/ultraflex/parser/pattern_set.rb +94 -0
  244. data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +33 -0
  245. data/lib/origen/tester/ultraflex/parser/test_instance.rb +262 -0
  246. data/lib/origen/tester/ultraflex/parser/test_instances.rb +26 -0
  247. data/lib/origen/tester/ultraflex/parser/timeset.rb +15 -0
  248. data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
  249. data/lib/origen/tester/ultraflex/parser.rb +104 -0
  250. data/lib/origen/tester/ultraflex/ultraflex.rb +759 -0
  251. data/lib/origen/tester/v93k/generator/flow.rb +63 -0
  252. data/lib/origen/tester/v93k/generator/flow_node/print.rb +10 -0
  253. data/lib/origen/tester/v93k/generator/flow_node.rb +17 -0
  254. data/lib/origen/tester/v93k/generator/pattern.rb +16 -0
  255. data/lib/origen/tester/v93k/generator/pattern_master.rb +54 -0
  256. data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +6 -0
  257. data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +11 -0
  258. data/lib/origen/tester/v93k/generator/templates/template.flow.erb +121 -0
  259. data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +9 -0
  260. data/lib/origen/tester/v93k/generator/test_function.rb +103 -0
  261. data/lib/origen/tester/v93k/generator/test_functions.rb +79 -0
  262. data/lib/origen/tester/v93k/generator/test_method.rb +46 -0
  263. data/lib/origen/tester/v93k/generator/test_methods.rb +75 -0
  264. data/lib/origen/tester/v93k/generator/test_suite.rb +54 -0
  265. data/lib/origen/tester/v93k/generator/test_suites.rb +65 -0
  266. data/lib/origen/tester/v93k/generator.rb +80 -0
  267. data/lib/origen/tester/v93k/v93k.rb +420 -0
  268. data/lib/origen/tester/vector.rb +86 -0
  269. data/lib/origen/tester/vector_generator.rb +633 -0
  270. data/lib/origen/tester/vector_pipeline.rb +150 -0
  271. data/lib/origen/tester.rb +56 -0
  272. data/lib/origen/top_level.rb +134 -0
  273. data/lib/origen/users/ldap.rb +65 -0
  274. data/lib/origen/users/user.rb +149 -0
  275. data/lib/origen/users.rb +30 -0
  276. data/lib/origen/utility/block_args.rb +93 -0
  277. data/lib/origen/utility/csv_data.rb +110 -0
  278. data/lib/origen/utility/design_sync.rb +494 -0
  279. data/lib/origen/utility/diff.rb +158 -0
  280. data/lib/origen/utility/input_capture.rb +121 -0
  281. data/lib/origen/utility/mailer.rb +143 -0
  282. data/lib/origen/utility/s_record.rb +205 -0
  283. data/lib/origen/utility/time_and_date.rb +30 -0
  284. data/lib/origen/utility.rb +12 -0
  285. data/lib/origen/version_checker.rb +117 -0
  286. data/lib/origen/version_string.rb +356 -0
  287. data/lib/origen.rb +648 -0
  288. data/lib/tasks/gem.rake +27 -22
  289. data/origen_site_config.yml +36 -0
  290. data/source_setup +17 -0
  291. data/spec/format/rgen_formatter.rb +14 -0
  292. data/templates/api_doc/README.txt.erb +24 -0
  293. data/templates/code_generators/gemfile_app.rb +4 -0
  294. data/templates/code_generators/gemfile_plugin.rb +6 -0
  295. data/templates/code_generators/gemspec.rb +33 -0
  296. data/templates/code_generators/rakefile.rb +10 -0
  297. data/templates/code_generators/spec_helper.rb +49 -0
  298. data/templates/code_generators/version.rb +8 -0
  299. data/templates/code_generators/version_time.rb +3 -0
  300. data/templates/git/gitignore.erb +33 -0
  301. data/templates/j750/_vt_flow.txt.erb +8 -0
  302. data/templates/j750/_vt_instances.txt.erb +4 -0
  303. data/templates/j750/program_sheet.txt.erb +9 -0
  304. data/templates/nanoc/Rules +74 -0
  305. data/templates/nanoc/config.yaml +77 -0
  306. data/templates/nanoc/content/favicon.ico +0 -0
  307. data/templates/nanoc/layouts/bootstrap.html.erb +63 -0
  308. data/templates/nanoc/layouts/bootstrap3.html.erb +71 -0
  309. data/templates/nanoc/layouts/freescale.html.erb +79 -0
  310. data/templates/nanoc/lib/bootstrap_filter.rb +49 -0
  311. data/templates/nanoc/lib/codeblocks_filter.rb +41 -0
  312. data/templates/nanoc/lib/default.rb +2 -0
  313. data/templates/nanoc/lib/gzip_filter.rb +16 -0
  314. data/templates/nanoc/lib/haml_code_filter.rb +41 -0
  315. data/templates/nanoc/lib/helpers.rb +1 -0
  316. data/templates/nanoc/lib/search_filter.rb +62 -0
  317. data/templates/nanoc_dynamic/content/search.js.erb +92 -0
  318. data/templates/shared/web/_logo.html +10 -0
  319. data/templates/test/_inline_sub.txt.erb +2 -0
  320. data/templates/test/environment.txt.erb +1 -0
  321. data/templates/test/inline.txt.erb +11 -0
  322. data/templates/test/inspections.txt.erb +19 -0
  323. data/templates/test/set1/_sub1.txt.erb +12 -0
  324. data/templates/test/set1/_sub4.txt.erb +1 -0
  325. data/templates/test/set1/_sub5.txt.erb +1 -0
  326. data/templates/test/set1/main.txt.erb +53 -0
  327. data/templates/test/set1/sub_dir/_sub2.txt.erb +20 -0
  328. data/templates/test/set1/sub_dir/_sub3.txt.erb +12 -0
  329. data/templates/test/set1/sub_dir/main2.txt.erb +4 -0
  330. data/templates/test/set2/template_with_no_erb_1.txt +9 -0
  331. data/templates/test/set2/template_with_no_erb_2.txt +9 -0
  332. data/templates/test/set3/_layout.html.erb +4 -0
  333. data/templates/test/set3/content.html.erb +6 -0
  334. data/templates/time/filter.rb.erb +15 -0
  335. data/templates/time/rules.rb.erb +45 -0
  336. metadata +639 -5
@@ -0,0 +1,27 @@
1
+ module Origen
2
+ # === Task: $ origen -t [target]
3
+ # Sets or displays the default target.<br>
4
+ # The default target is the one that will be
5
+ # be used anytime you run an origen task without supplying a target via the -t option.
6
+ # ==== Supplying a target name
7
+ # The target argument can be any of the following:
8
+ # * A path to a file in the target directory, e.g. origen -t target/p2_production.rb
9
+ # * The name of a target, e.g. origen -t p2_production.rb
10
+ # * A fragment of a name. If this is enough to uniquely identify a target in from the
11
+ # the target directory then this will be used, otherwise the list of possible matches
12
+ # will be displayed. e.g. origen -t p2
13
+ # * A MOO number. The mapping of the MOO number to a target must be defined in
14
+ # the production_targets attribute of Project. e.g. origen -t 1m79x
15
+ #
16
+ Origen.load_application
17
+
18
+ target = ARGV.shift
19
+ if target
20
+ Origen.app.target.default = target
21
+ puts "Target now set to: #{Origen.app.target.file.basename}"
22
+ else
23
+ Origen.app.target.describe
24
+ end
25
+
26
+ exit 0
27
+ end
@@ -0,0 +1,127 @@
1
+ require 'optparse'
2
+ require 'pathname'
3
+
4
+ options = {}
5
+
6
+ ARGV << '-h' if ARGV.empty?
7
+
8
+ # App options are options that the application can supply to extend this command
9
+ app_options = @application_options || []
10
+ opt_parser = OptionParser.new do |opts|
11
+ opts.banner = <<-STOP
12
+ Origen test time profiling and forecasting tools.
13
+
14
+ Usage: origen time CMD [args] [options]
15
+ CMD - The command to run, the following commands exist:
16
+
17
+ import FILE - Import a reference test time from the given detailed execution time file
18
+
19
+ forecast - Forecast the test time for the current target for the given flow and library
20
+
21
+ new rules - Create a new rules file (use this to specify how tests should scale between targets)
22
+ new filter - Create a new filter (use this to filter imports, by default all tests are imported)
23
+
24
+ STOP
25
+ opts.on('-n', '--name FILE', String, 'Use the given named reference instead of the default') { |o| options[:ref_name] = o }
26
+ opts.on('-s', '--summary', 'Output flow summary results only (instead of details for each test)') { options[:summary] = true }
27
+ opts.on('-t', '--target NAME1,NAME2,NAME3', Array, 'Override the default target, NAME can be a full path or a fragment of a target file name') { |t| options[:target] = t }
28
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
29
+ opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
30
+ opts.on('-f', '--file FILE', String, 'Override the default log file') { |o| options[:log_file] = o }
31
+ app_options.each do |app_option|
32
+ opts.on(*app_option) {}
33
+ end
34
+ opts.separator ''
35
+ opts.on('-h', '--help', 'Show this message') { puts opts; exit }
36
+ end
37
+ opt_parser.parse! ARGV
38
+
39
+ cmd = ARGV[0] || 'missing'
40
+ case cmd.downcase
41
+ when 'forecast'
42
+ Origen.target.loop(options) do |options|
43
+ Origen.app.runner.launch(action: :forecast_test_time,
44
+ summary: options[:summary],
45
+ ref_name: options[:ref_name])
46
+ end
47
+
48
+ when 'import'
49
+ if !ARGV[1] || !File.exist?(ARGV[1])
50
+ puts 'A valid file to import must be supplied, e.g.'
51
+ puts ' origen time import exec_times/p2_sort1.txt'
52
+ exit 1
53
+ end
54
+ if options[:target] && [options[:target]].flatten.size > 1
55
+ puts "When importing it doesn't make sense to select multiple targets,"
56
+ puts 'select only the single target that matches the setup from which'
57
+ puts 'the detailed execution time has been generated!'
58
+ exit 1
59
+ end
60
+ Origen.target.loop(options) do |options|
61
+ # This step seems redundant, the flow should be imported at the
62
+ # same time as extracting the test times
63
+ Origen.app.runner.launch(action: :import_test_flow,
64
+ file: ARGV[1],
65
+ ref_name: options[:ref_name])
66
+
67
+ Origen.app.runner.launch(action: :import_test_time,
68
+ file: ARGV[1],
69
+ ref_name: options[:ref_name])
70
+ end
71
+
72
+ when 'new'
73
+ if ARGV[1] == 'rules'
74
+ Origen.app.runner.launch(action: :compile,
75
+ file: "#{Origen.top}/templates/time/rules.rb.erb",
76
+ output: "#{Origen.root}/config/test_time",
77
+ quiet: true,
78
+ check_for_changes: false
79
+ )
80
+ # Add this to the environment if not already present...
81
+ env = "#{Origen.root}/config/environment.rb"
82
+ unless File.readlines(env).any? { |l| l =~ /config\/test_time\/rules/ }
83
+ # The 'b' here invokes binary format and stops Ruby from substituting the \n for a
84
+ # windows carriage return when running on windows
85
+ File.open(env, 'ab') { |f| f.print "require \"\#{Origen.root}/config/test_time/rules\"\n" }
86
+ env = false
87
+ end
88
+ puts ''
89
+ puts 'New rules created at: config/test_time/rules.rb'
90
+ puts ''
91
+ unless env
92
+ puts 'This file has been added to your environment.rb'
93
+ puts ''
94
+ end
95
+ puts 'To check this in run:'
96
+ puts " dssc ci -new -keep -com \"Initial\" #{Origen.root}/config/test_time/rules.rb"
97
+ elsif ARGV[1] == 'filter'
98
+ Origen.app.runner.launch(action: :compile,
99
+ file: "#{Origen.top}/templates/time/filter.rb.erb",
100
+ output: "#{Origen.root}/config/test_time",
101
+ quiet: true,
102
+ check_for_changes: false
103
+ )
104
+ # Add this to the environment if not already present...
105
+ env = "#{Origen.root}/config/environment.rb"
106
+ unless File.readlines(env).any? { |l| l =~ /config\/test_time\/filter/ }
107
+ File.open(env, 'ab') { |f| f.print "require \"\#{Origen.root}/config/test_time/filter\"\n" }
108
+ env = false
109
+ end
110
+ puts ''
111
+ puts 'New filter created at: config/test_time/filter.rb'
112
+ puts ''
113
+ unless env
114
+ puts 'This file has been added to your environment.rb'
115
+ puts ''
116
+ end
117
+ puts 'To check this in run:'
118
+ puts " dssc ci -new -keep -com \"Initial\" #{Origen.root}/config/test_time/filter.rb"
119
+
120
+ else
121
+ puts 'A valid identifier for the kind of file to create must be supplied, e.g.'
122
+ puts ' origen time new rules'
123
+ exit 1
124
+ end
125
+ else
126
+ puts "Unknown command, see 'origen time -h' for a list of commands"
127
+ end
@@ -0,0 +1,17 @@
1
+ if Origen.app_loaded?
2
+ puts "Application: #{Origen.app.version}"
3
+ if Origen.config.required_origen_version && (Origen.config.required_origen_version != Origen.version)
4
+ puts " Origen: #{Origen.version} (App requires #{Origen.config.required_origen_version})"
5
+ elsif Origen.config.min_required_origen_version &&
6
+ Origen.version.less_than?(Origen.config.min_required_origen_version)
7
+ puts " Origen: #{Origen.version} (App requires >= #{Origen.config.min_required_origen_version})"
8
+ elsif Origen.config.max_required_origen_version &&
9
+ Origen.version.greater_than?(Origen.config.max_required_origen_version)
10
+ puts " Origen: #{Origen.version} (App requires <= #{Origen.config.max_required_origen_version})"
11
+ else
12
+ puts " Origen: #{Origen.version}"
13
+ end
14
+ else
15
+ puts " Origen: #{Origen.version}"
16
+ end
17
+ exit 0
@@ -0,0 +1,221 @@
1
+ require 'optparse'
2
+ require 'pathname'
3
+
4
+ module Origen
5
+ options = {}
6
+
7
+ # App options are options that the application can supply to extend this command
8
+ app_options = @application_options || []
9
+ opt_parser = OptionParser.new do |opts|
10
+ opts.banner = <<-END
11
+ Usage: origen web CMD [options]
12
+
13
+ The following commands are available:
14
+ new Create a fresh web directory (this will delete any existing compiled files!).
15
+ A new directory will automatically be created if you don't have one when you run the compile
16
+ command, however if for some reason you want to start fresh you can run this command to do so.
17
+
18
+ serve Start a webserver from the current directory
19
+
20
+ compile [FILE] Compile all web templates and start a server to view them, optionally supply a
21
+ file argument to only update a single page e.g. 'origen web compile templates/web/index.md.erb'
22
+ Use the --remote option to copy the compiled files to a remote web server directory (the
23
+ location of which should be specified via Origen.config.web_directory). In this case when no
24
+ FILE argument is specified the entire site will be copied over to a fresh web server
25
+ directory and the live site will be switched over when complete.
26
+ When a FILE argument is present the specified file(s) will be compiled directly to the live
27
+ production site.
28
+
29
+ deploy [FILE] Same as compile with --remote except that the actual compilation step will be skipped - i.e.
30
+ use this in cases where you already have long-running templates pre-compiled.
31
+ The api generation step will also be skipped if the --api option is supplied.
32
+
33
+ archive ID Archive the current contents of your live website under the given ID. This is normally used
34
+ to archive the documents for a specific production release, so "origen web archive Rel20120112"
35
+ would be viewable at <your_domain>/Rel20120112.
36
+
37
+ The following options are available:
38
+ END
39
+ opts.on('-e', '--environment NAME', String, 'Override the default environment, NAME can be a full path or a fragment of an environment file name') { |e| options[:environment] = e }
40
+ opts.on('-t', '--target NAME', String, 'Override the default target, NAME can be a full path or a fragment of a target file name') { |t| options[:target] = t }
41
+ opts.on('-r', '--remote', 'Use in conjunction with the compile command to deploy files to a remote web server') { options[:remote] = true }
42
+ opts.on('-a', '--api', 'Generate API documentation after compiling') { options[:api] = true }
43
+ opts.on('--archive ID', String, 'Archive the documents after compiling or deploying remotely') { |id| options[:archive] = id }
44
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
45
+ opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
46
+ app_options.each do |app_option|
47
+ opts.on(*app_option) {}
48
+ end
49
+ opts.separator ''
50
+ opts.on('-h', '--help', 'Show this message') { puts opts; exit }
51
+ end
52
+ opt_parser.parse! ARGV
53
+
54
+ Origen.load_application
55
+ Origen.environment.temporary = options[:environment] if options[:environment]
56
+ Origen.target.temporary = options[:target] if options[:target]
57
+
58
+ def self._require_web_directory
59
+ unless Origen.config.web_directory
60
+ puts 'To run that command you must specify the location of your webserver, for example:'
61
+ puts ''
62
+ puts '# config/application.rb'
63
+ puts 'config.web_directory = "/proj/.web_origen/html/origen"'
64
+ exit 1
65
+ end
66
+ end
67
+
68
+ def self._start_server
69
+ # Get the current host
70
+ host = `hostname`.strip.downcase
71
+ if Origen.running_on_windows?
72
+ domain = 'fsl.freescale.net'
73
+ else
74
+ domain = `dnsdomainname`.strip
75
+ end
76
+ # Get a free port
77
+ require 'socket'
78
+ port = 8000 # preferred port
79
+ begin
80
+ server = TCPServer.new('127.0.0.1', port)
81
+ rescue Errno::EADDRINUSE
82
+ # port = rand(65000 - 1024) + 1024
83
+ port += 1
84
+ retry
85
+ end
86
+ server.close
87
+ # Start the server
88
+ puts ''
89
+ puts "Point your browser to this address: http://#{host}#{domain.empty? ? '' : '.' + domain}:#{port}"
90
+ puts ''
91
+ puts 'To shut down the server use CTRL-C'
92
+ puts ''
93
+ system "ruby -run -e httpd . -p #{port}"
94
+ end
95
+
96
+ def self._build_web_dir
97
+ _deployer.create_web_server_dir
98
+
99
+ dir = Pathname.new(_deployer.web_server_dir).relative_path_from(Pathname.pwd)
100
+
101
+ puts "Web server directory created at: #{dir}"
102
+ puts ''
103
+ puts "Compile any files you want to test into the #{dir}/content directory, e.g.:"
104
+ puts " origen c templates/file.md.erb -o #{dir}/content"
105
+ puts ''
106
+ puts 'To turn them into web pages:'
107
+ puts " cd #{dir}"
108
+ if Origen.running_on_windows?
109
+ puts ' nanoc'
110
+ else
111
+ puts ' env LANG=en_US.UTF-8 nanoc'
112
+ end
113
+ puts ''
114
+ puts 'To start a web server for remote viewing:'
115
+ puts " cd #{dir}/output"
116
+ puts ' origen web serve'
117
+ end
118
+
119
+ def self._deployer
120
+ @_deployer ||= Origen.app.deployer
121
+ @_deployer.test = true
122
+ @_deployer
123
+ end
124
+
125
+ if ARGV[0]
126
+ case ARGV.shift
127
+ when 'serve'
128
+ _start_server
129
+ when 'new'
130
+ _build_web_dir
131
+ when 'compile'
132
+ Origen.app.load_target!
133
+ if options[:remote]
134
+ _require_web_directory
135
+ _deployer.require_remote_directories
136
+ # If the whole site has been requested that start from a clean slate
137
+ _build_web_dir if ARGV.empty?
138
+ else
139
+ Origen.set_development_mode
140
+ end
141
+ if ARGV.empty?
142
+ _build_web_dir
143
+ Dir.chdir Origen.root do
144
+ Origen.app.listeners_for(:before_web_compile).each do |listener|
145
+ listener.before_web_compile(options)
146
+ end
147
+ Origen.app.runner.launch action: :compile,
148
+ files: 'templates/web',
149
+ output: 'web/content'
150
+ Origen.app.listeners_for(:after_web_compile).each do |listener|
151
+ listener.after_web_compile(options)
152
+ end
153
+ end
154
+
155
+ else
156
+ _build_web_dir unless File.exist?("#{Origen.root}/web")
157
+ Origen.app.listeners_for(:before_web_compile).each do |listener|
158
+ listener.before_web_compile(options)
159
+ end
160
+ ARGV.each do |file|
161
+ output = Origen.file_handler.sub_dir_of(Origen.file_handler.clean_path_to(file), "#{Origen.root}/templates/web")
162
+ Origen.app.runner.launch action: :compile,
163
+ files: file,
164
+ output: "#{Origen.root}/web/content/#{output}"
165
+ end
166
+ Origen.app.listeners_for(:after_web_compile).each do |listener|
167
+ listener.after_web_compile(options)
168
+ end
169
+ end
170
+ Dir.chdir "#{Origen.root}/web" do
171
+ system "#{Origen.root}/lbin/nanoc"
172
+ end
173
+ if options[:api]
174
+ _deployer.generate_api
175
+ end
176
+ if options[:remote]
177
+ if ARGV.empty?
178
+ _deployer.deploy_site
179
+ else
180
+ ARGV.each do |files|
181
+ Origen.file_handler.resolve_files(files) do |file|
182
+ _deployer.deploy_file(file)
183
+ end
184
+ end
185
+ end
186
+ _deployer.deploy_archive(options[:archive]) if options[:archive]
187
+ else
188
+ Dir.chdir "#{Origen.root}/web/output" do
189
+ _start_server
190
+ end
191
+ end
192
+
193
+ when 'deploy'
194
+ Origen.app.load_target!
195
+ _require_web_directory
196
+ if ARGV.empty?
197
+ _deployer.deploy_site
198
+ else
199
+ ARGV.each do |files|
200
+ Origen.file_handler.resolve_files(files) do |file|
201
+ _deployer.deploy_file(file)
202
+ end
203
+ end
204
+ end
205
+ _deployer.deploy_archive(options[:archive]) if options[:archive]
206
+
207
+ when 'archive'
208
+ Origen.app.load_target!
209
+ _require_web_directory
210
+ unless ARGV[0]
211
+ puts 'You must supply an ID argument to create an archive'
212
+ end
213
+ _deployer.deploy_archive(ARGV[0])
214
+
215
+ else
216
+ puts "Unknown command, see 'origen web -h' for a list of commands"
217
+ end
218
+ else
219
+ puts "You must supply a command, see 'origen web -h' for a list of commands"
220
+ end
221
+ end
@@ -0,0 +1,272 @@
1
+ # Main entry point for all Origen commands, some global option handling
2
+ # is done here (i.e. options that apply to all commands) before handing
3
+ # over to the specific command handlers
4
+ require 'optparse'
5
+
6
+ ARGV << '--help' if ARGV.empty?
7
+
8
+ ORIGEN_COMMAND_ALIASES = {
9
+ 'g' => 'generate',
10
+ 'p' => 'program',
11
+ 't' => 'target',
12
+ '-t' => 'target', # For legacy reasons
13
+ 'e' => 'environment',
14
+ '-e' => 'environment',
15
+ 'mods' => 'modifications',
16
+ '-o' => 'modifications', # Legacy
17
+ 'l' => 'lsf',
18
+ 'i' => 'interactive',
19
+ 'c' => 'compile',
20
+ 'pl' => 'plugin',
21
+ '-v' => 'version',
22
+ '--version' => 'version'
23
+ }
24
+
25
+ @command = ARGV.shift
26
+ @command = ORIGEN_COMMAND_ALIASES[@command] || @command
27
+
28
+ # Don't log to file during the save command since we need to preserve the last log,
29
+ # this is done as early in the process as possible so any deprecation warnings during
30
+ # load don't trigger a new log
31
+ Origen::Log.console_only = (%w(save target environment version).include?(@command) || ARGV.include?('--exec_remote'))
32
+
33
+ if ARGV.delete('--coverage') ||
34
+ ((@command == 'specs' || @command == 'examples') && (ARGV.delete('-c') || ARGV.delete('--coverage')))
35
+ require 'simplecov'
36
+ SimpleCov.start
37
+ Origen.log.info 'Started code coverage'
38
+ SimpleCov.configure do
39
+ filters.clear # This will remove the :root_filter that comes via simplecov's defaults
40
+ add_filter do |src|
41
+ !(src.filename =~ /^#{Origen.root}\/lib/)
42
+ end
43
+
44
+ # Results from commands run in succession will be merged by default
45
+ use_merging(!ARGV.delete('--no_merge'))
46
+
47
+ # Try and make a guess about which directory contains the bulk of the application's code
48
+ # and create groups to match the main folders
49
+ d1 = "#{Origen.root}/lib/#{Origen.app.name.to_s.underscore}"
50
+ d2 = "#{Origen.root}/lib/#{Origen.app.namespace.to_s.underscore}"
51
+ d3 = "#{Origen.root}/lib"
52
+ if File.exist?(d1) && File.directory?(d1)
53
+ dir = d1
54
+ elsif File.exist?(d2) && File.directory?(d2)
55
+ dir = d2
56
+ else
57
+ dir = d3
58
+ end
59
+
60
+ Dir.glob("#{dir}/*").each do |d|
61
+ d = Pathname.new(d)
62
+ if d.directory?
63
+ add_group d.basename.to_s.camelcase, d.to_s
64
+ end
65
+ end
66
+
67
+ command_name @command
68
+
69
+ path_to_coverage_report = Pathname.new("#{Origen.root}/coverage/index.html").relative_path_from(Pathname.pwd)
70
+
71
+ at_exit do
72
+ SimpleCov.result.format!
73
+ puts ''
74
+ puts 'To view coverage report:'
75
+ puts " firefox #{path_to_coverage_report} &"
76
+ puts ''
77
+ end
78
+ end
79
+ end
80
+
81
+ require 'origen/global_methods'
82
+ include Origen::GlobalMethods
83
+
84
+ Origen.lsf.current_command = @command
85
+ Origen.send :current_command=, @command
86
+
87
+ if ARGV.delete('-d') || ARGV.delete('--debug')
88
+ begin
89
+ if RUBY_VERSION >= '2.0.0'
90
+ require 'byebug'
91
+ else
92
+ require 'rubygems'
93
+ require 'ruby-debug'
94
+ end
95
+ rescue LoadError
96
+ def debugger
97
+ caller[0] =~ /.*\/(\w+\.rb):(\d+).*/
98
+ puts 'The debugger gem is not installed, add the following to your Gemfile:'
99
+ puts
100
+ puts "if RUBY_VERSION >= '2.0.0'"
101
+ puts " gem 'byebug', '~>3.5'"
102
+ puts 'else'
103
+ puts " gem 'debugger', '~>1.6'"
104
+ puts 'end'
105
+ puts
106
+ end
107
+ end
108
+ Origen.enable_debugger
109
+ else
110
+ def debugger
111
+ caller[0] =~ /.*\/(\w+\.rb):(\d+).*/
112
+ puts "#{Regexp.last_match[1]}:#{Regexp.last_match[2]} - debugger statement ignored, run again with '-d' to enable it"
113
+ end
114
+ end
115
+
116
+ if ARGV.include?('-verbose') || ARGV.include?('--verbose')
117
+ options ||= {}
118
+ Origen.log.level = :verbose
119
+ ARGV.delete('-verbose')
120
+ ARGV.delete('--verbose')
121
+ end
122
+
123
+ if ARGV.include?('-silent') || ARGV.include?('--silent')
124
+ options ||= {}
125
+ Origen.log.level = :silent
126
+ ARGV.delete('-silent')
127
+ ARGV.delete('--silent')
128
+ end
129
+
130
+ # If the current command is an LSF execution request (that is a request to
131
+ # execute a non-Origen command remotely)
132
+ if (@command == 'lsf' || @command == 'l') && (ARGV.include?('-e') || ARGV.include?('--execute'))
133
+ # Don't apply these global options yet, pass them through to the underlying command
134
+ else
135
+ if ARGV.delete('--profile')
136
+ # This means that as well as applying to the current thread, this option will also
137
+ # be applied to any remote jobs triggered by this thread
138
+ Origen.app.lsf_manager.add_command_option('--profile')
139
+ Origen.enable_profiling
140
+ end
141
+ if ARGV.delete('--exec_remote') && @command != 'lsf' && @command != 'l'
142
+ Origen.running_remotely = true
143
+ end
144
+ # Set the Origen operating mode if supplied
145
+ ix = ARGV.index('-m') || ARGV.index('--mode')
146
+ if ix
147
+ ARGV.delete_at(ix)
148
+ mode = ARGV[ix]
149
+ ARGV.delete_at(ix)
150
+ Origen.app.lsf_manager.add_command_option('--mode', mode)
151
+ Origen.mode = mode
152
+ # Make sure this sticks for the remainder of this thread
153
+ Origen.mode.freeze
154
+ end
155
+ end
156
+
157
+ # Give application commands the first shot at executing the given command,
158
+ # the application file must exit upon servicing the command if it wants to
159
+ # prevent Origen from then having a go.
160
+ # This order is preferable to allowing Origen to go first since it allows
161
+ # overloading of Origen commands by the application.
162
+ if File.exist? "#{Origen.root}/config/commands.rb"
163
+ require "#{Origen.root}/config/commands"
164
+ end
165
+
166
+ shared_commands = Origen.import_manager.command_launcher
167
+ @plugin_commands ||= []
168
+ if shared_commands && shared_commands.size != 0
169
+ shared_commands.each do |file|
170
+ require file
171
+ end
172
+ end
173
+
174
+ case @command
175
+ when 'generate', 'program', 'compile', 'merge', 'interactive', 'target', 'environment',
176
+ 'ctags', 'save', 'lsf', 'web', 'time', 'dispatch', 'rc', 'lint', 'plugin' # , 'add'
177
+
178
+ require "origen/commands/#{@command}"
179
+ exit 0 unless @command == 'interactive'
180
+
181
+ when 'upgrade_app'
182
+ Origen::CodeGenerators.invoke 'bundler', [], config: { type: :application }
183
+ Origen::CodeGenerators.invoke 'rake', []
184
+ Origen::CodeGenerators.invoke 'r_spec', ['-f']
185
+ exit 0
186
+
187
+ when 'upgrade_plugin'
188
+ unless Origen.app.version.semantic?
189
+ puts 'To upgrade to a gem your plugin must switch to semantic (1.2.3) style versioning.'
190
+ puts
191
+ end
192
+ Origen::CodeGenerators.invoke 'semver', []
193
+ Origen::CodeGenerators.invoke 'gem_setup', []
194
+ Origen::CodeGenerators.invoke 'bundler', []
195
+ Origen::CodeGenerators.invoke 'rake', []
196
+ Origen::CodeGenerators.invoke 'r_spec', ['-f']
197
+ exit 0
198
+
199
+ when 'version'
200
+ Origen.disable_origen_version_check do
201
+ Origen.load_application(false)
202
+ require 'origen/commands/version'
203
+ end
204
+
205
+ when 'serve'
206
+ puts '***************************************************************'
207
+ puts "'origen serve' is deprecated, please use 'origen web serve' instead"
208
+ puts '***************************************************************'
209
+ ARGV.unshift 'serve'
210
+ load 'origen/commands/web.rb'
211
+
212
+ when 'tag'
213
+ puts '***************************************************************'
214
+ puts "'origen tag' is deprecated, please use 'origen rc tag' instead"
215
+ puts '***************************************************************'
216
+ ARGV.unshift 'tag'
217
+ load 'origen/commands/rc.rb'
218
+
219
+ when 'modifications'
220
+ puts '***************************************************************'
221
+ puts "'origen mods' is deprecated, please use 'origen rc mods' instead"
222
+ puts '***************************************************************'
223
+ ARGV.unshift 'modifications'
224
+ load 'origen/commands/rc.rb'
225
+
226
+ else
227
+ puts "Error: Command not recognized: #{@command}" unless ['-h', '--help'].include?(@command)
228
+ puts <<-EOT
229
+ Usage: origen COMMAND [ARGS]
230
+
231
+ The core origen commands are:
232
+ environment Display or set the default environment (short-cut alias: "e")
233
+ target Display or set the default target (short-cut alias: "t")
234
+ generate Generate a test pattern (short-cut alias: "g")
235
+ program Generate a test program (short-cut alias: "p")
236
+ interactive Start an interactive Origen console (short-cut alias: "i")
237
+ compile Compile a template file or directory (short-cut alias: "c")
238
+ rc Revision control commands, see -h for details
239
+ ctags Generate ctags file (can be used for code navigation)
240
+ save Save the new or changed files from the last run or a given log file
241
+ lsf Monitor and manage LSF jobs (short-cut alias: "l")
242
+ web Web page tools, see -h for details
243
+ time Tools for test time analysis and forecasting
244
+ lint Lint and style check (and correct) your application code
245
+ plugin Manage Origen plugins (short-cut alias: "pl")
246
+
247
+ EOT
248
+ if @application_commands && !@application_commands.empty?
249
+ puts <<-EOT
250
+ In addition to these the application has added:
251
+ #{@application_commands}
252
+ EOT
253
+ end
254
+
255
+ if @plugin_commands && !@plugin_commands.empty?
256
+ puts 'The following commands are provided by plugins:'
257
+ @plugin_commands.each do |str|
258
+ puts str
259
+ end
260
+ end
261
+
262
+ puts <<-EOT
263
+
264
+ All commands can be run with -d (or --debugger) to enable the debugger.
265
+ All commands can be run with --coverage to enable code coverage.
266
+ Many commands can be run with -h (or --help) for more information.
267
+
268
+ EOT
269
+
270
+ # dispatch Dispatch an Origen command to a worker farm
271
+ exit(1)
272
+ end