Move wash/ to top level.

Change-Id: Ic0a70299438766b58de756e109b9c4c0a0875166
Reviewed-on: https://chromium-review.googlesource.com/175638
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wash: Update readme, add pseudo-idl.

Change-Id: I15684c90f8f7a695c5a5dd399df101ad88332d38
Reviewed-on: https://chromium-review.googlesource.com/185254
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wash/lib_wa iteration

Landing some changes from a long-lived but otherwise
unloved attempt to convert nassh to a v2 app.

direct_transport.js
* service_ speedups.

lib_wa_fs_directory.js
* guarantee async resolve.

lib_wa_message.js
* declare/document closeStack_.

wash_commands.js
* canned readline history.

wash_shell.js
* add search path.
* refactor foreground execution.
* parse args as JSON if they look like JSON, space-delimited array otherwise.

Change-Id: Ifec1daeaceb22c37b6fe37be01062a3912486542
Reviewed-on: https://chromium-review.googlesource.com/187011
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
add libapps/lib_wam, fix fallout

Change-Id: I844636718b474ad45013ec63534112c9e16cb5a6
Reviewed-on: https://chromium-review.googlesource.com/187012
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
lib_wam/wash: update docs to reflect the new layout

Change-Id: I6e32822924d996a04e35ec50ccc1af106d43395f
Reviewed-on: https://chromium-review.googlesource.com/187178
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
Update wash to work with the latest wam

* Update wash to fit into the post lib_wam -> wam world.
* Add "builtins" module for commands that need to operate
  on the current shell instance, implement "cd", "pwd", and
  "export".
* Add "nacl", "pnacl" and "stty" executables.

Change-Id: Ibefee5d2f7b77ca43af1024ec96500629780a23f
Reviewed-on: https://chromium-review.googlesource.com/198247
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
Add wam_jsfs_remote_file_system.js and stuff

Adds a RemoteFileSystem entry type to JSFS, which can be used to
mount a remote wam.FileSystem into the local JSFS.

Also adds a '/mnt/loopback' entrypoint to the wash JSFS, which
demonstrates wam.jsfs.RemoteFileSystem by having wash mount its
own file system via a wam.transport.Direct connection.

Change-Id: Ib400595ef4f2b8ed3271519165beb7d153b90787
Reviewed-on: https://chromium-review.googlesource.com/198314
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wash: Make it possible to exit wash

* Add an "X" button to the wash window titlebar.
* Make readline return null for Ctrl-D on an empty line.
* Make wash shell exit on null return value from readline.

Change-Id: I2c56f9be32f0456ed39ac9bb856da47b4c3f10d0
Reviewed-on: https://chromium-review.googlesource.com/198411
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wam/wash: Add file-access flag to load_tests.sh/run_local.sh

Change-Id: If4c5d28eb2f44dfa905c6906e448de241e59e72a
Reviewed-on: https://chromium-review.googlesource.com/198397
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
Bag o' fixes for wash and wam, in support of nassh.

wam:
* Add generic wam.FileSystem.Error.RuntimeError.
* Add binding.fs.dirName utility function.
* Plumb stdout/stderr acknowledgement for flow control.
* Add jsfs.Filesystem..makeEntry.
* wam.transport.ChromePort fixes.

wash:
* Fix 'delete-char' in readline.
* Re-organize paths into /apps/wash, /apps/chrome, etc.
* Fix double '//' when setting PWD from the cd command.
* export PWD='/' at startup.
* Wait for hterm to be ready before firing wash.TerminalWindow..onInit().

Change-Id: If1e400f6d1a691939ba4c9d3f99b4d88c3879258
Reviewed-on: https://chromium-review.googlesource.com/198613
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wam/wash: Support transport/channel reconnect.

Make it possible for a wam.jsfs.RemoteFileSystem (and other
transport and channel clients) to attempt to recover from a
loss of transport or channel ready.

Change-Id: I7da0517213db84cb1a6fd82fe2de3b422d21744e
Reviewed-on: https://chromium-review.googlesource.com/198726
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wam/wash/nassh: Make it easier to publish a jsfs

* Add wam.jsfs.FileSystem..publishOn(channel) to handle the
  boilerplate needed to publish a jsfs file system on a channel.

Change-Id: I1b0138a94519361d6b8137be691fc4c5293783c4
Reviewed-on: https://chromium-review.googlesource.com/198895
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wash: Fix empty arg parsing, wam: add missing error

Change-Id: I609a4b664a4dcf142ecdc5e6e899e325531687a1
wash: Fix parsing of argument-less commands to pass null as the arg value.
wam: Add the missing FileExists error.
Reviewed-on: https://chromium-review.googlesource.com/198909
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wam/wash/saltpig: Add domfs, other tweaks.

wam:
* Add wam.jsfs.DOMFileSystem.
* rename jsfs's "opList" to "abilities".
* Treat the "FORWARD" ability special.  If an entry can "FORWARD", then it
  can ONLY forward.  Other listed abilities refer to what the destination
  can do.
* Let remote wam filesystems give themselves a name in their "ready" reply.

wash:
* Hook up wam.jsfs.DOMFileSystem.
* tweak ls output.
* Default mount path to remote filesystem name in mount.chrome.
* Make PATH a real environment variable.

saltpig:
* Hook up wam.jsfs.DOMFileSystem
* Fix public key.

Change-Id: I0ecd10ce71c81e34cc456c63082d261a5e543c59
Reviewed-on: https://chromium-review.googlesource.com/199145
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wam/wash/saltpig: Add executeContext.requestTTY

* Add a executeContext.requestTTY method so that the thing being executed
  can request changes to the TTY object.
* Make saltpig use this to request that keyboard interupts be disabled
  once the nacl plugin is running.

Change-Id: I845d6835d9de5af0e28984914ada68bc06f4431d
Reviewed-on: https://chromium-review.googlesource.com/199422
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
wam/wash: Implement 'open' functionality, add lots of comments.

This adds wam.FileSystem 'open' functionality to most places.

The wam 'open' message, and the 'stat', 'seek', 'read', and 'write'
sub-messages are plumbed through wam.binding.js classes,
wam.remote.fs.handshake, wam.jsfs.FileSystem, wam.jsfs.RemoteFileSystem,
and wam.jsfs.dom.FileSystem.

This also fills out most js docs for the files it touches.

Finally, 'cp' and 'rm' commands are implemented in wash_executables.js to
make use of the new plumbing.

Change-Id: Iaa11925a296afe849769ff5220f3092c2e3c86f3
Reviewed-on: https://chromium-review.googlesource.com/200638
Reviewed-by: Robert Ginda <rginda@chromium.org>
Tested-by: Robert Ginda <rginda@chromium.org>
Merge branch 'wash_subtree' of ../../../libapps

Conflicts:
	README.md
trim down README.md