@@ -13,16 +13,17 @@ you should do that first.
1313Why shpc?
1414=========
1515
16- While the library is currently focused on Singularity containers (hence
17- the name) it's created to be modular, meaning that if another container technology
18- is wanted, it can be added. The module name would still be appropriate, as
19- singularity does imply a single entity that is "one library to rule them all!"
16+ Singularity Registry HPC is created to be modular, meaning that we support a distinct
17+ set of container technologies and module systems. The name of the library "Singularity
18+ Registry HPC" does not refer specifically to the container technology "Singularity,"
19+ but more generally implies the same spirit -- a single entity that is "one library to rule them all!"
20+
2021
2122What is a registry?
2223===================
2324
2425A registry consists of a database of local containers configuration files, ``container.yaml ``
25- files organized in the root of the shpc install in the ``registry `` folder . The namespace
26+ files organized in the root of the shpc install in one of the ``registry `` folders . The namespace
2627is organized by Docker unique resources identifiers. When you install an identifier
2728as we saw above, the container binaries and customized module files are added to
2829the ``module_dir `` defined in your settings, which defaults to ``modules `` in the
@@ -99,15 +100,27 @@ Setup
99100=====
100101
101102Setup includes, after installation, editing any configuration values to
102- customize your install. The defaults are likely suitable for most.
103- For any configuration value that you might set, the following variables
104- are available to you:
103+ customize your install. The configuration file will default to ``shpc/settings.yml ``
104+ in the installed module, however you can create your own user settings file to
105+ take preference over this one as follows:
106+
107+ .. code-block :: console
108+
109+ $ shpc config userinit
110+
111+
112+ The defaults in either file are likely suitable for most. For any configuration value
113+ that you might set, the following variables are available to you:
105114
106115 - ``$install_dir ``: the shpc folder
107116 - ``$root_dir ``: the parent directory of shpc (where this README.md is located)
108117
109118
110- A summary table of variables is included below, and then further discussed in detail.
119+ Additionally, the variables ``module_base ``, ``container_base ``, and ``registry ``
120+ can be set with environment variables that will be expanded at runtime. You cannot
121+ use the protected set of substitution variables (``$install_dir `` and ``$install_root ``)
122+ as environment variables, as they will be subbed in by shpc before environment
123+ variable replacement. A summary table of variables is included below, and then further discussed in detail.
111124
112125
113126.. list-table :: Title
@@ -121,8 +134,8 @@ A summary table of variables is included below, and then further discussed in de
121134 - Set a default module system. Currently lmod and tcl are supported
122135 - [lmod, tcl]
123136 * - registry
124- - The full path to the registry folder (with subfolders with container.yaml recipes)
125- - $root_dir/registry
137+ - A list of full paths to one or more registry folders (with subfolders with container.yaml recipes)
138+ - [ $root_dir/registry]
126139 * - module_base
127140 - The install directory for modules. Defaults to the install directory/modules
128141 - $root_dir/modules
@@ -271,8 +284,10 @@ directory.
271284Registry
272285--------
273286
274- The registry folder in the root of the repository, but you can change it to
275- be a custom one with the config variable ``registry ``
287+ The registry parameter is a list of one or more registry locations (filesystem
288+ directories) where shpc will search for ``container.yaml `` files. The default
289+ registry shipped with shpc is the folder in the root of the repository, but
290+ you can add or remove entries via the config variable ``registry ``
276291
277292
278293.. code-block :: console
@@ -409,6 +424,8 @@ file directly, or you can use ``shpc config``, which will accept:
409424
410425 - set to set a parameter and value
411426 - get to get a parameter by name
427+ - add to add a value to a parameter that is a list (e.g., registry)
428+ - remove to remove a value from a parameter that is a list
412429
413430The following example shows changing the default module_base path from the install directory modules folder.
414431
@@ -428,6 +445,14 @@ And then to get values:
428445 $ shpc config get module_base
429446
430447
448+ And to add and remove a value to a list:
449+
450+ .. code-block::console
451+
452+ $ shpc config add registry:/tmp/registry
453+ $ shpc config remove registry:/tmp/registry
454+
455+
431456 You can also open the config in the editor defined in settings at ``config_editor ``
432457
433458.. code-block :: console
0 commit comments