Browse files

Bug 734031 (intro): Various documentation tweaks

  • Loading branch information...
1 parent 1e383dd commit e15aef951993edb845651cb0ce7f36722cdfd6b4 @joewalker joewalker committed Mar 8, 2012
Showing with 25 additions and 50 deletions.
  1. +24 −46
  2. +0 −3 index.html
  3. +1 −1 lib/server/build.js
@@ -2,66 +2,44 @@
GCLI - Graphic Command Line
-GCLI is a command line component. It is used in Ace/Skywriter/Cloud9/etc
-It can be easily embedded in any web page and JavaScript application.
+GCLI is a graphical command line component. It is being integrated with
+Firefox developer tools and with editors like Orion and Ace. It can be embedded
+in web pages and JavaScript applications.
-Getting Started
-GCLI uses submodules, so make sure you checkout with the following:
- git clone git:// --recursive
- cd gcli
- python
-Then in a browser, visit 'http://localhost:9999/' and where you see the '>'
-prompt, type 'help' to see a list of commands, 'sh ls -la' executes the list
-command using a shell provided by the python server.
-There are a number of problems with common command lines:
+Command lines have advantages over graphical UIs in speed of entry and the
+ability to contain an almost unlimited set of commands without becoming
+cluttered. On the other hand GUIs typically come with better discoverability.
+GCLI is an experiment to see if we can improve the discoverability of command
+lines whilst retaining the speed and powerful command set of traditional CLIs.
+There are a number of problems with the design of traditional command lines:
* They assume a curses-style 80x24 (or similar) character array for output.
- This hasn't made much sense for the last 10 years, even system consoles are
- capable of graphics these days.
-* They assume serial access to the output.
+ Even system consoles are capable of graphics these days. It ought to be
+ possible to have richer output.
+* They assume serial access to the output - one command at a time.
This made sense when multi-tasking was expensive, however with modern
processors single-tasking is starting to look expensive.
* They are so loosely coupled that the integration is typically nothing more
than argv/stdout/stderr/stdin.
That level of integration made sense on memory constrained devices, but with
more resources, we can provide much richer integration.
-Command lines are often better than UIs for speed of entry and for things like
-history/scripting/etc, but on the other hand UIs are typically have better
-discoverability, so it would be good to retain the speed/text basis, but make
-CLIs easier to use.
-Some of the benefits that are currently working:
+Getting Started
-* Output can be HTML, so tables can be laid out better than the space based
- formatting that 'ls' uses.
-* All commands can run in the background. '&' becomes the default.
-* Commands can write to the output whenever they want, without risk of colliding
- with another task, this means that commands can safely ask for clarification
- or further input whenever they want.
-* Output can contain command links, so the output of 'ls' can contain icons to
- copy/move/delete the listed files.
-* An AST of the input is created, so we can identify exactly what in the command
- line is incorrect before return is pressed, and require a fix before the user
- is allowed to continue.
-* The input parameters are typed. Enter "set historyLength 7" and then press UP.
- The system knows that the type of the 'historyLength' setting is a number, so
- we can do an increment operation.
+ git clone git://
+ cd gcli
+ # Load index.html into your web browser (except Chrome)
+ # For Chrome:
+ npm install .
+ ./gcli.js
+ # Visit http://localhost:9999/
-Some additional benefits that should be possible:
+When you see the '»' prompt, type 'help' to see a list of commands.
-* The command line display does not have to be a plain string. In addition to
- the error mark-up we can obscure passwords and when the user types
- "--password tiger" we can display "--password *****". Potentially long
- filenames could be displayed in shortened form (using "...") when they're not
- being edited.
-* We could generate a menu system that would allow selection and even execution
- of commands using a mouse in a why almost as familiar as a traditional GUI.
@@ -41,13 +41,10 @@
// 'deps' should be the same as in lib/server/build.js:buildStandard
- var start = new Date().getTime();
var deps = [ 'gcli/index', 'gclitest/index', 'demo/index' ];
require(deps, function(gcli, gclitest) {{ useFakeWindow: true });
gcli.createView({ useTooltip: true });
- console.log('Startup time (inc tests): ' + (new Date().getTime() - start)/1000 + 's');
@@ -301,7 +301,7 @@ function createUndefineFunction(project) {
- *
+ * Test build file
exports.buildMain = function() {
var firefoxHome = main.gcliHome + '/../devtools';

0 comments on commit e15aef9

Please sign in to comment.