| #!/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 | 
 |  | 
 | 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 'serde_derive=true inside_protobuf=true' \ | 
 |     -I../proto \ | 
 |     -I../protoc-bin-vendored/include \ | 
 |     ../protoc-bin-vendored/include/google/protobuf/*.proto \ | 
 |     ../protoc-bin-vendored/include/google/protobuf/compiler/* \ | 
 |     ../proto/rustproto.proto | 
 |  | 
 | mv tmp-generated/descriptor.rs tmp-generated/plugin.rs tmp-generated/rustproto.rs src/ | 
 | mv tmp-generated/*.rs src/well_known_types/ | 
 | ( | 
 |     cd src/well_known_types | 
 |     exec > mod.rs | 
 |     echo "// This file is generated. Do not edit" | 
 |     echo '//! Generated code for "well known types"' | 
 |     echo "//!" | 
 |     echo "//! [This document](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf) describes these types." | 
 |  | 
 |     mod_list() { | 
 |         ls | grep -v mod.rs | sed -e 's,\.rs$,,' | 
 |     } | 
 |  | 
 |     echo | 
 |     mod_list | sed -e 's,^,mod ,; s,$,;,' | 
 |  | 
 |     echo | 
 |     mod_list | while read mod; do | 
 |         echo "pub use self::$mod::*;" | 
 |     done | 
 | ) | 
 |  | 
 | # vim: set ts=4 sw=4 et: |