| #!/bin/sh -ex |
| |
| cd "$(dirname "$0")" |
| |
| die() { |
| echo "$@" >&2 |
| exit 1 |
| } |
| |
| protoc_ver=$(protoc --version) |
| case "$protoc_ver" in |
| "libprotoc 3"*) ;; |
| *) |
| die "you need to use protobuf 3 to regenerate .rs from .proto" |
| ;; |
| esac |
| |
| cargo build --manifest-path=../protobuf-codegen/Cargo.toml |
| cargo build --manifest-path=../protoc-bin/Cargo.toml --bin protoc-bin-print-paths |
| |
| eval "$(cargo run --manifest-path=../protoc-bin/Cargo.toml --bin protoc-bin-print-paths)" |
| |
| test -n "$PROTOC" |
| |
| where_am_i=$( |
| cd .. |
| pwd |
| ) |
| |
| rm -rf tmp-generated |
| mkdir tmp-generated |
| |
| case $(uname) in |
| Linux) |
| exe_suffix="" |
| ;; |
| MSYS_NT*) |
| exe_suffix=".exe" |
| ;; |
| esac |
| |
| "$PROTOC" \ |
| --plugin=protoc-gen-rust="$where_am_i/target/debug/protoc-gen-rust$exe_suffix" \ |
| --rust_out tmp-generated \ |
| --rust_opt 'inside_protobuf=true gen_mod_rs=false' \ |
| -I../proto \ |
| ../proto/google/protobuf/*.proto \ |
| ../proto/google/protobuf/compiler/*.proto \ |
| ../proto/rustproto.proto \ |
| ../proto/doctest_pb.proto |
| |
| mv \ |
| tmp-generated/descriptor.rs \ |
| tmp-generated/plugin.rs \ |
| tmp-generated/rustproto.rs \ |
| tmp-generated/doctest_pb.rs \ |
| src/ |
| mv tmp-generated/well_known_types_mod.rs src/well_known_types/mod.rs |
| mv tmp-generated/*.rs src/well_known_types/ |
| |
| # vim: set ts=4 sw=4 et: |