Initial Setup

Follow the process below to set up required preliminary settings.

Running legohdl for the first time will prompt the user if they would like to set up a profile.

$ legohdl
INFO:	This looks like your first time running legoHDL! Would you like to use a 
profile (import settings, template, and plugins)? [y/n]

Returning y gives the user 3 choices.

$ y
Enter:
1) nothing for default profile
2) a path or git repository to a profile
3) 'exit' to cancel configuration

Unless you have a profile already that you would like to use, let's go ahead and return an empty response to use the default profile.

$
INFO:   Setting up default profile...
INFO:   Reloading default profile...
INFO:   Importing default profile...
INFO:   Overloading legohdl.cfg...
CREATED: plugin.hello = echo "hello world!"
CREATED: plugin.demo = python $LEGOHDL/plugins/demo.py
OBSERVE: hdl-styling.auto-fit = on
OBSERVE: hdl-styling.alignment = 1
ALTERED: hdl-styling.port-modifier = w_*
CREATED: [workspace.primary]
CREATED: workspace.primary.path = 
CREATED: workspace.primary.vendors = 
INFO:   Importing template...
INFO:   Overloading template in legohdl.cfg...
OBSERVE: general.template = 
INFO:   Importing plugins...
INFO:   Copying demo.py to built-in plugins folder...
INFO:   Overloading plugins in legohdl.cfg...
OBSERVE: plugin.hello = echo "hello world!"
OBSERVE: plugin.demo = python $LEGOHDL/plugins/demo.py

legoHDL then asks for your name

Enter your name:
$ Chase Ruskin
ALTERED: general.author = Chase Ruskin

and how it should call your text-editor to run.

Enter your text-editor:
$ code
ALTERED: general.editor = code

Finally, you must specify a path for the current active-workspace, which is named "primary" by default.

INFO:	Local path for workspace primary cannot be empty.
Enter path for workspace primary: 
$ ~/develop/hdl/primary/

Note: If the entered path does not exist, legoHDL will notify you and ask to verify the creation of the new path.

Now the default console output from legoHDL appears. All required configurations are complete.

Usage:         
	legohdl <command> [entry] [<flags>] [-h]   

Commands:
Development
   new          create a new legohdl block (project)
   init         initialize existing code into a legohdl block
   open         open a block with the configured text-editor
   get          print instantiation code for an HDL unit
   graph        visualize HDL dependency graph
   export       generate a blueprint file
   build        execute a custom configured plugin
   release      set a newer version for the current block
   del          delete a block from the local workspace path

Management
   list         print list of all blocks available
   refresh      sync local vendors with their remotes
   install      bring a block to the cache for dependency use
   uninstall    remove a block from the cache
   download     bring a block to the workspace path for development
   update       update an installed block to be its latest version
   info         read further detail about a block
   config       modify legohdl settings

Type 'legohdl help <command>' to read about that command.

You can modify settings at any time in the GUI with

$ legohdl open -settings

See Managing Settings for more information regarding settings.