README update

This commit is contained in:
Katarzyna Miernikiewicz 2020-09-10 15:52:38 +00:00
parent 6e1483243c
commit b6a1c273fc

View File

@ -4,12 +4,14 @@ This library provides sandboxed version of the [Jsonnet](https://github.com/goog
## Examples
The `examples/` directory contains code to produce three command-line tools -- `jsonnet_sandboxed`, `jsonnet_yaml_stream_sandboxed` and `jsonnet_multiple_files_sandboxed`. The first one enables the user to evaluate jsonnet code held in one file and writing to one output file. The second evaluates one jsonnet file into one file, which can be interepreted as YAML stream. The third one is for evaluating one jsonnet file into multiple output files.
The `examples/` directory contains code to produce three command-line tools -- `jsonnet_sandboxed`, `jsonnet_yaml_stream_sandboxed` and `jsonnet_multiple_files_sandboxed` to evaluate jsonnet code. The first one enables the user to evaluate jsonnet code held in one file and writing to one output file. The second evaluates one jsonnet file into one file, which can be interepreted as YAML stream. The third one is for evaluating one jsonnet file into multiple output files.
All three tools are based on what can be found [here](https://github.com/google/jsonnet/blob/master/cmd/jsonnet.cpp).
Apart from these, there is also a file producing `jsonnet_formatter_sandboxed` executable. It is based on a tool found from [here](https://github.com/google/jsonnet/blob/master/cmd/jsonnetfmt.cpp). It is a jsonnet code formatter -- it changes poorly written jsonnet files into their canonical form.
## Build
To build this example, after cloning the whole Sandbox API project, you also need to run
To build these examples, after cloning the whole Sandbox API project, you also need to run
```
git submodule update --init --recursive
@ -21,16 +23,21 @@ mkdir build && cd build
cmake -G Ninja
ninja
```
To run `jsonnet_sandboxed` (or `jsonnet_yaml_stream_sandboxed` in a similar way):
To run `jsonnet_sandboxed` (or `jsonnet_yaml_stream_sandboxed` or `jsonnet_formatter_sandboxed` in a similar way):
```
cd examples
./jsonnet_sandboxed absolute/path/to/the/input_file.jsonnet \
./jsonnet_sandboxed \
absolute/path/to/the/input_file.jsonnet \
absolute/path/to/the/output_file
```
To run `jsonnet_mutiple_files_sandboxed`:
```
cd examples
./jsonnet_mutiple_files_sandboxed absolute/path/to/the/input_file.jsonnet \
./jsonnet_mutiple_files_sandboxed \
absolute/path/to/the/input_file.jsonnet \
absolute/path/to/the/output_directory
```
All three tools support evaluating one input file (possibly relying on multiple other files, e.x. by jsonnet `import` command; the files must be held in the same directory as input file) into one or more output files. Example jsonnet codes to evaluate in a one-in-one-out manner can be found [here](https://github.com/google/jsonnet/tree/master/examples). Example code producing multiple output files or YAML stream files can be found in the `examples/jsonnet_codes` directory, in files called `multiple_files_example.jsonnet` and `yaml_stream_example.jsonnet`, respectively.
The formatter reads one input file and produces one output file as a result. Example code for this tool can also be found in `examples/jsonnet_codes` directory, in a file called `formatter_example.jsonnet`.