Pass betterproto option using custom_opt instead of environment variable

This commit is contained in:
boukeversteegh 2020-06-06 12:51:37 +02:00
parent d31f90be6b
commit f7769a19d1
2 changed files with 8 additions and 5 deletions

View File

@ -360,13 +360,17 @@ $ pipenv run test
Betterproto includes compiled versions for Google's well-known types at [betterproto/lib/google](betterproto/lib/google). Betterproto includes compiled versions for Google's well-known types at [betterproto/lib/google](betterproto/lib/google).
Be sure to regenerate these files when modifying the plugin output format, and validate by running the tests. Be sure to regenerate these files when modifying the plugin output format, and validate by running the tests.
Normally, the plugin does not compile any references to `google.protobuf`, since they are pre-compiled. To force compilation of `google.protobuf`, set this environment variable: `BETTERPROTO_OPTS=INCLUDE_GOOGLE`. Normally, the plugin does not compile any references to `google.protobuf`, since they are pre-compiled. To force compilation of `google.protobuf`, use the option `--custom_opt=INCLUDE_GOOGLE`.
Assuming your `google.protobuf` source files (included with all releases of `protoc`) are located in `/usr/local/include`, you can regenerate them as follows: Assuming your `google.protobuf` source files (included with all releases of `protoc`) are located in `/usr/local/include`, you can regenerate them as follows:
```sh ```sh
export BETTERPROTO_OPTS=INCLUDE_GOOGLE protoc \
protoc --plugin=protoc-gen-custom=betterproto/plugin.py --custom_out=betterproto/lib -I/usr/local/include/ /usr/local/include/google/protobuf/*.proto --plugin=protoc-gen-custom=betterproto/plugin.py \
--custom_opt=INCLUDE_GOOGLE \
--custom_out=betterproto/lib \
-I /usr/local/include/ \
/usr/local/include/google/protobuf/*.proto
``` ```

View File

@ -120,8 +120,7 @@ def get_comment(proto_file, path: List[int], indent: int = 4) -> str:
def generate_code(request, response): def generate_code(request, response):
plugin_options = os.environ.get("BETTERPROTO_OPTS") plugin_options = request.parameter.split(",") if request.parameter else []
plugin_options = plugin_options.split(" ") if plugin_options else []
env = jinja2.Environment( env = jinja2.Environment(
trim_blocks=True, trim_blocks=True,