(Command Line) Interface
The interface of a tool like this is all most users will ever see, so it has to be done right. If
gorilla help doesn't fit on a single terminal screen then we're doing it wrong (I'm looking at you,
Quick, Offthetopofmyhead Proposal
$ wget http://bitbucket.org/sjl/gorilla/get/tip.zip gorilla.zip $ unzip gorilla.zip ... add the two entries to .bashrc (provide a script for this?) ... $ gorilla init # bootstrap gorilla (optional, see below) $ gorilla home ... open a web browser for gorilla's homepage ... $ gorilla list Available Packages: mercurial django django-registration django-paypal cherrypy jinja2 ... $ gorilla search django Available Packages: django django-registration django-paypal $ gorilla info django Django is the web framework for perfections with deadlines. Website: http://djangoproject.com/ $ gorilla home django ... open a web browser for django's website ... $ gorilla prefer hg/git/static # change the preferred VCS (optional) $ gorilla install django -v Installing django Cloning <repopath> Updating to newest version (1.1) Building Linking Installed django $ gorilla install cherrypy ... time passes ... $ gorilla remove django -v Removing django Unlinking Removed django $ gorilla smash cherrypy -v Smashing cherrpy Unlinking Deleting gorilla/shelves/cherrypy Smashed cherrypy $ gorilla create hyde Creating a new card for hyde ... open the card file in $EDITOR ... ... edit the card ... $ gorilla install hyde ... the user makes sure everything's cool ... $ gorilla submit hyde ... commit the hyde card file to the catalog repo ... ... use hg/git to generate a patch for that commit ... Generated a patch for hyde at ./hyde.hg.patch Email that file to <email@example.com> $ gorilla update Updating gorilla Updating catalog $
Gorilla should be able to be used as a static installation, but it should also be able to bootstrap itself into a real as-god-intended-it repository from that static install.
Here's one way it could work:
- User downloads and extracts the gorilla zipfile.
- User runs
gorilla init. If they already have git or hg installed, use it to clone down the gorilla repository and replace itself with that. If they don't have hg or git, inform them and suggest that they
gorilla install mercurialand try again.
- If gorilla is run while it's still a static repo, that's cool. We should still use hg or git to pull down package repos if they're available, or fall back on tarballs.