As you can tell from the name, it was originally intended to be a noninteractive command-line app. It should still work as same if you run 'lsdh dreamhost_ps-list_ps -q' or the like; otherwise, it will turn into an interactive shell for controlling the DreamHost API from the command line. It's not particularly well documented; essentially, what you want to do is:

Create ~/.lsdhrc

Put 'username=yourdreamhostusername' and 'key=yourdreamhostapikey' lines in ~/.lsdhrc.

If your system SSL certs don't include Dreamhost's issuer, you may want to add 'cert api.cert'. to ~/.lsdhrc.

Run ./lsdh

Type 'help'.

You can also set username=whatever and key=whatever inside the lsdh shell, which may be handy if you're debugging things, have several panels, or simply don't like storing your keys in dotfiles.

It should support the entire DreamHost API as of the time of this posting; however, it's not thoroughly tested. The default autoclean setting will strip all variables that it doesn't think go with the command you're using; 'autoclean 0' if you find that behavior broken or if you work for DH and trying to use it to add new features. *grin*

Get lsdh-release-0.9.tar.bz2

Known limitations:

It would be nicer if I'd used Readline. Readline and taint mode don't seem to play nice together, though. Also, if you have a systemwide list of trusted CAs, and someone other than Dreamhost manages to get one of those CAs to sign their key, and said someone then manages to intercept your communication with Dreamhost, they can steal your API key. This problem is not unique to lsdh, though - the same applies if you use Konqueror/Mozilla/Lynx/IE/Chrome/Safari/Opera to access the panel through SSL.

Also, I've only tested this in Linux (Debian Lenny). If you have a perl that can use WWW::Curl it should work easily; you may need to install WWW::Curl. If you're using something other than Lenny, let me know if it actually runs for you!


deekoo.net / technocracy (more of my software. Which is not work safe in many environments, so be warned accordingly.)