commit | a74ea8c2ecb7f13a78c5af31ef213998f079a84d | [log] [tgz] |
---|---|---|
author | Mitchell Kember <mkember@google.com> | Wed Apr 08 14:43:38 2020 -0700 |
committer | Mitchell Kember <mkember@google.com> | Thu Apr 09 19:14:05 2020 -0700 |
tree | 587537a537ff3d41945cbb7475ea3ce6de142ec1 | |
parent | 6f3a32380c95fbb42790e1fe9fda29cb5836a0f7 [diff] |
Pass rustfmt to fidlgen_rust This CL adds support for rustfmt, so that FIDL->Rust output is formatted. It uses the rustfmt binary from fuchsia/prebuilts, and the confing file fuchsia/rustfmt.toml. This also removes logic in main.go to determine default values for flags because it is outdated (e.g. assumes fidlbolt is in the fuchsia tree) and these defaults are already set in the Makefile. Change-Id: I7942de31f14b39c58ffcc5b4bb97e5d0472ac878
fidlbolt is web app for exploring FIDL code and bytes, inspired by Matt Godbolt's Compiler Explorer.
To run a local fidlbolt server:
fx build host_x64/{fidlc,fidlgen_{llcpp,hlcpp,rust,go,dart}} zircon/tools
.make run
.http://localhost:8080
.If you don't want changes in the fuchsia tree (e.g. rebuilding fidlc or changing FIDL libraries) to affect the running fidlbolt, use make run COPY=1
instead.
The backend is written in Go 1.13. It uses net/http to serve static files and handle POST requests.
The frontend is written in Elm and TypeScript. It uses webpack for bundling.
To set up the frontend:
sudo apt-get install nodejs
.cd frontend && npm install
Then, use one of the commands listed in npm run
:
npm run dev
: build in development modenpm run watch
: rebuild in development mode on every file changenpm run tc
: typecheck TypeScript filesnpm run lint
: run eslint on TypeScript filesnpm run fix
: format and fix lint issues in TypeScript and Elm filesnpm run build
: build in production modeThe build commands read files in frontend/src/
and generate output in frontend/dist/
.
Before making a CL, always run make format
.
The project uses Docker for containerized deployment.
To build and run a new image locally:
sudo apt-get install docker-ce
../copy_fuchsia_files.sh
to get the latest FIDL files and binaries from your Fuchsia repository.docker image build -t fidlbolt .
docker container run --publish 8080:8080 --detach --name fb fidlbolt
You might need to use sudo
with the Docker commands.