Awesome
SKILL Package Manager (SPAM)
SPAM is a package management system for Cadence SKILL.
Dependencies
Following utilities must be installed:
- wget
- unzip
SPAM has only been tested under Cadence Design Framework:
- virtuoso version 6.1.7-64b 01/24/2018
- SKILL 35.00
Getting Started
Download spam
$ git clone https://github.com/rbzentrum/SPAM.git ~/.cadence/spam
into a directory of your choosing, for example ~/.cadence/spam/
.
Make sure environment variables SPAMHOMEPATH
and SPAMPROJPATH
are set either with
$ export SPAMHOMEPATH=~/.cadence/spam
$ export SPAMPROJPATH=/path/to/project
or in your .cdsinit
(setShellEnvVar "SPAMHOMEPATH" "~/.cadence/spam")
(setShellEnvVar "SPAMPROJPATH" "/path/to/project")
and load spam.ils
.
(load "spam.ils")
Adding Repositories
The repository definition for github is given in repo.ils
,
just add others or private repositories in the same way to that list.
Alternatively you can call spmDefineRepo
at runtime:
(spmDefineRepo
t_name
t_metaUrl
u_urlGenerator
) => r_repo
and add this r_repo
object to (get SPAM 'repositories)
.
Function Reference
spamSearch
(spamSearch
t_query
) => t | nil
Searches for packages with the names given by the string 't_query'.
spamInstall
(spamInstall
t_name
[ t_name ]
...
) => t | nil
Installs the packages given by the strings 't_name'. If the installation was successful, t is returned.
spamRemove
(spamRemove
t_name
[ t_name ]
...
) => t | nil
Removes the packages with the names given by the strings 't_name'.
spamUpdate
(spamUpdate
[t_name]
...
) => t | nil
Updates a given list of packages (t_name). If no packages are specified the meta database will be updated.
spamInfo
(spamInfo
t_name
) => t | nil
Prints information about the given package with name 't_name'.
spamUse
(spamUse
t_name
[ t_name ]
...
) => t | nil
Includes the given packages in the given order into the current toplevel.