This script is useful for those who create complex code content that has one or more common file/directory structures. Currently the script is aimed at Linux based environments. Examples of appropriate end-users are hardware/verification professionals creating digital designs (SoCs) using languages such as SystemVerilog, SystemC or VHDL. Complex code examples include TLM 2.0 or UVM (Universal Verification Methodology) standards promoted by Accellera
For example, in UVM designers typically needs to create multiple derivations of the following base classes:
uvm_test
uvm_env
uvm_agent containing unique
uvm_sequencer,
uvm_driver, and
uvm_monitor`uvm_sequence_item
uvm_sequence
These are often put in customer specific directory organizations. Templates can help make the process of creation easier and more consistent. The concept of newscript is similar to Visual Studio or Eclipse projects; however, has been extended to sub-components.
A key concept of newscript templates is that the resultant files are not useable until all of the marked placeholders have been replaced with useful code. This is done to avoid a common design error that happens as a result of copy/paste and forgetting to update key sections of a copied file or text.
newscript can also be incorporated in some text editors (e.g. VIM).
Plans for this project include adding a simple GUI dialog to make selection and use of templates easier.