browser: gosh: address TODOs

More specifically:
- Eliminates Shell.Main, since it's easy enough to use
Shell.Fn and set the returned Cmd's Args
- Renames Shell.Fn to Shell.FuncCmd
- Extends Shell.{Cmd,FuncCmd} comments to explain what's
done with the given arguments
- Makes it so NewShell takes a snapshot of os.Environ() and
uses that henceforth
- Makes it so NewShell filters out any gosh env vars coming
from outside
- Renames registry.go's Fn to Func, Register to
RegisterFunc, and Call to CallFunc
- Adjusts the behavior of RegisterFunc so that names are
augmented to produce collision-resistant handles of the
form "file:line:name"
- Makes callFunc and Func.call private for now, until
there's a clear need for them to be exported
- Eliminates gosh.Run
- Renames Cmd.Shutdown (which we decided to keep) to
Cmd.Terminate
- Changes Cmd.Signal and Cmd.Terminate to fail if Wait
has been called
- Drops Cmd.Kill; if it proves necessary, we'll add a
gosh.Kill implementation of os.Signal that tells
Cmd.Signal and Cmd.Terminate to issue Process.Kill

Also, updates v23test:
- Same changes as in gosh (Fn->FuncCmd, no more Main)
- Replaces v23test.Run with TestMain (simple case) and
InitTestMain (advanced case)
- Eliminates the hack with credentials env vars

MultiPart: 5/8

Change-Id: Iea100c6bf34cc7de1a367423cbdc09c25051df0f
1 file changed
tree: 912a0d0ebaf0d81b9e0dfa3417c0b8840685d530
  1. go/
  2. public/
  3. src/
  4. test/
  5. .gitignore
  6. .jshintignore
  7. .jshintrc
  8. AUTHORS
  9. bower.json
  10. CONTRIBUTING.md
  11. CONTRIBUTORS
  12. css-transform.js
  13. LICENSE
  14. main-transform.js
  15. Makefile
  16. md-transform.js
  17. package.json
  18. PATENTS
  19. README.md
  20. VERSION
  21. web-component-dependencies.html
README.md

Vanadium Namespace Browser

The namespace browser is a web application that lets developers and other users view and interact with the Vanadium world. Starting from their namespace root or other mount table, users can browse through the mount table hierarchy and see where services are mounted. The user can select a service to see more detailed information about it, and can also interact with the service, invoking methods to examine or modify the state of the service.

Installing the Vanadium Extension

As a Vanadium web application, the Namespace Browser requires that users install the Vanadium Extension from the Chrome Web Store. If you try to run the web app without the extension, it will prompt you to install it.

Here is the link to the Vanadium Extension: https://chrome.google.com/webstore/detail/vanadium-extension/jcaelnibllfoobpedofhlaobfcoknpap

Hosted Namespace Browser

The Vanadium Namespace Browser lives online at https://browser.v.io/

Building the Namespace Browser

You do not need to build your own copy of the namespace browser in order to use it, unless you want to modify it or see how it works.

To build a local copy, install the Vanadium environment and be sure to include the web profile.

Next, to build your own copy of the namespace browser, run:

cd $JIRI_ROOT/release/projects/browser
make build

This compiles the relevant bundle files in the ‘public’ folder. The assets inside must be served as your own instance of the web app.

Running locally for development

You can serve a local instance of the Namespace Browser by executing the following command:

make start

Navigate to http://localhost:9001 to launch the namespace browser. You can quit by using CTRL-C on the console running make start.

If you have any problems after updating the code, try cleaning the build.

make clean
make start

Testing

The namespace browser has some unit and integration tests that verify basic functionality. Run these tests with the following command:

make test

Contributing

The code repository for the Namespace Browser is on GitHub.

Bugs and other issues can be submitted to the Namespace Browser Issue Tracker.