blob: 51df6f8db162571913a5d7bf6a517716d2b61a56 [file] [log] [blame]
Joshua Haberman8b870752021-05-04 10:19:22 -07001#!/bin/bash
2
Adam Cozzetteed1d7442021-08-06 15:53:14 -07003set -ex
Joshua Haberman8b870752021-05-04 10:19:22 -07004
Mike Kruskaled5c57a2022-08-10 22:51:29 -07005cd `dirname $0`/..
Joshua Haberman8b870752021-05-04 10:19:22 -07006
Mike Kruskal01c340d2022-09-19 09:50:19 -07007if [[ -z "${PROTOC}" ]]; then
8 PROTOC=$(pwd)/protoc
9fi
Mike Kruskaled5c57a2022-08-10 22:51:29 -070010if [ ! -f $PROTOC ]; then
Mike Kruskalf0ef44d2023-02-02 15:53:04 -080011 ${BAZEL:-bazel} $BAZEL_STARTUP_FLAGS build -c opt //:protoc $BAZEL_FLAGS
Mike Kruskaled5c57a2022-08-10 22:51:29 -070012 PROTOC=$(pwd)/bazel-bin/protoc
Joshua Haberman45e97072021-05-12 10:42:16 -070013fi
14
Mike Kruskaled5c57a2022-08-10 22:51:29 -070015if [[ -d php/tmp && -z $(find php/tests/proto $PROTOC -newer php/tmp) ]]; then
Joshua Haberman8b870752021-05-04 10:19:22 -070016 # Generated protos are already present and up to date, so we can skip protoc.
17 #
18 # Protoc is very fast, but sometimes it is not available (like if we haven't
19 # built it in Docker). Skipping it helps us proceed in this case.
20 echo "Test protos are up-to-date, skipping protoc."
21 exit 0
22fi
23
Mike Kruskaled5c57a2022-08-10 22:51:29 -070024rm -rf php/tmp
25mkdir -p php/tmp
Joshua Haberman8b870752021-05-04 10:19:22 -070026
Joshua Haberman45e97072021-05-12 10:42:16 -070027find php/tests/proto -type f -name "*.proto"| xargs $PROTOC --php_out=php/tmp -Isrc -Iphp/tests
Joshua Haberman8b870752021-05-04 10:19:22 -070028
29if [ "$1" = "--aggregate_metadata" ]; then
30 # Overwrite some of the files to use aggregation.
31 AGGREGATED_FILES="tests/proto/test.proto tests/proto/test_include.proto tests/proto/test_import_descriptor_proto.proto"
Joshua Haberman45e97072021-05-12 10:42:16 -070032 $PROTOC --php_out=aggregate_metadata=foo#bar:php/tmp -Isrc -Iphp/tests $AGGREGATED_FILES
Joshua Haberman8b870752021-05-04 10:19:22 -070033fi
34
35echo "Generated test protos from tests/proto -> tmp"