Home

Awesome

SKILL Package Manager (SPAM)

SPAM is a package management system for Cadence SKILL.

Dependencies

Following utilities must be installed:

SPAM has only been tested under Cadence Design Framework:

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.