A module manager for newlisp

nl-install is a simple module manager for newlisp. With this first release, I have set up a repository for the Artful Code modules and included it in the default settings for the application.

There are not a huge number of features at the moment, but here is the list:

  • install modules from multiple repositories
  • install/uninstall module dependencies
  • automatic upgrade of modules
  • newlisp version checking
  • file clash checking

Basic setup

Download the archive nl-install from http://static.artfulcode.net/nl-install/. Extract and edit the nl-install file to set up your target installation directory (/usr/share/newlips/site-lisp by default) and any (future) extra repositories you would like to add. Make the file executable and place in your path, then update:

chmod +x nl-install
sudo cp nl-install /usr/local/bin
sudo nl-install update

Usage

To see the list of all available modules or just the ones installed:

nl-install list available
nl-install list installed

To install one or more modules:

sudo nl-install install acode:csv
sudo nl-install install acode:matching acode:util

If there are other modules that must be installed first, you will be prompted for their installation.

To uninstall a module:

sudo nl-install uninstall acode:csv

Re-install a module to get the latest version.

Repositories

Setting up your own repository is easy. Just write a package listing and put it online somewhere. A sample is included in the tarball:

(repository
  (title "My repository")
  (identifier "foo") ; once chosen, this should *not* change
  (contact "My Name ")
  (version 1000) ; repository version number (1.0)
 
  (module
    (title "module1")
    (description "A short description of module1")
    (url "http://location/of/module1.lsp")
    (qwerty "http://location/of/module1.qwerty")
    (version 1010) ; 1.1
    (newlisp-min-version 10000) ; 10
    (newlisp-max-version 10001) ; 10.0.1
    (depends nil)) ; no dependencies
 
  (module
    (title "module2")
    (description "A short description of module2")
    (url "http://location/of/module2.lsp")
    (qwerty "http://location/of/module2.qwerty")
    (version 2011) ; 2.1.1
    (newlisp-min-version 10000) ; 10
    (newlisp-max-version 10001) ; 10.0.1
    (depends "foo:module1")))

Let me know about it and I will put it in the repository list.

One thought on “A module manager for newlisp

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>