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.