Skip to content

Commit 5efea14

Browse files
committed
Update/create readme for generating protobuf files for logcache, loggregator and locket
1 parent 805210e commit 5efea14

File tree

3 files changed

+68
-52
lines changed

3 files changed

+68
-52
lines changed

lib/locket/README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
To generate the locket protobuf files:
2+
3+
1. Install protoc 30.2 from https://github.com/protocolbuffers/protobuf/releases
4+
5+
2. Generate protobuf files:
6+
7+
```
8+
#!/bin/bash
9+
10+
gem install grpc-tools
11+
12+
tmp_dir=$(mktemp -d)
13+
echo "Temp dir: $tmp_dir"
14+
15+
pushd $tmp_dir
16+
git clone --depth 1 "https://github.com/cloudfoundry/locket.git"
17+
mv locket/models/locket.proto locket/
18+
popd
19+
20+
out_dir=$(mktemp -d)
21+
echo "Out dir: $out_dir"
22+
RUBY_OUT=$out_dir/ruby-out
23+
GRPC_OUT=$out_dir/grpc-out
24+
mkdir -p $RUBY_OUT $GRPC_OUT
25+
26+
protoc --plugin=protoc-gen-grpc=`which grpc_tools_ruby_protoc_plugin` --proto_path=$tmp_dir --ruby_out=$RUBY_OUT --grpc_out=$GRPC_OUT $tmp_dir/locket/locket.proto
27+
```
28+
29+
3. Copy `$out_dir/ruby_out/locket/*` and `$out_dir/grpc_out/locket` into `lib/locket`.

lib/logcache/README.md

Lines changed: 20 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,36 @@
1-
This is taken from code.cloudfoundry.org/go-log-cache/rpc/logcache_v1/generate.sh
1+
This is taken from [github.com/cloudfoundry/go-log-cache/rpc/logcache_v1/generate.sh](https://github.com/cloudfoundry/go-log-cache/blob/main/rpc/logcache_v1/generate.sh)
22

3-
To generate the two logcache egress*pb.rb files:
3+
1. Install protoc 30.2 from https://github.com/protocolbuffers/protobuf/releases
44

5-
`grpc_tools_ruby_protoc` comes from doing `gem install grpc-tools`
5+
2. Generate protobuf files:
66

77
```
88
#!/bin/bash
99
10-
11-
go get github.com/golang/protobuf/{proto,protoc-gen-go}
12-
go get github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
13-
go get code.cloudfoundry.org/log-cache
10+
gem install grpc-tools
1411
1512
tmp_dir=$(mktemp -d)
16-
mkdir -p $tmp_dir/log-cache
17-
18-
trash_dir=$(mktemp -d)
19-
20-
cp $GOPATH/src/code.cloudfoundry.org/log-cache/api/v1/*proto $tmp_dir/log-cache
13+
echo "Temp dir: $tmp_dir"
14+
mkdir -p $tmp_dir/logcache
2115
2216
pushd $tmp_dir
23-
git clone https://github.com/cloudfoundry/loggregator-api
17+
git clone --depth 1 https://github.com/cloudfoundry/loggregator-api.git
18+
git clone --depth 1 https://github.com/googleapis/googleapis.git
19+
mv googleapis/google .
20+
rm -rf googleapis
21+
22+
git clone --depth 1 https://github.com/cloudfoundry/go-log-cache.git
23+
cp go-log-cache/api/v1/*.proto logcache/
24+
rm -rf go-log-cache
2425
popd
2526
26-
RUBY_OUT=$trash_dir/log-cache/ruby-out
27-
GRPC_OUT=$trash_dir/log-cache/grpc-out
28-
mkdir -p $RUBY_OUT $GRPC_OUT
29-
grpc_tools_ruby_protoc \
30-
$tmp_dir/log-cache/*.proto \
31-
--go_out=plugins=grpc,Mv2/envelope.proto=code.cloudfoundry.org/go-loggregator/rpc/loggregator_v2:. \
32-
--ruby_out=$RUBY_OUT \
33-
--grpc_out=$GRPC_OUT \
34-
--proto_path=$tmp_dir/log-cache \
35-
--grpc-gateway_out=logtostderr=true:. \
36-
-I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
37-
-I=/usr/local/include \
38-
-I=$tmp_dir/log-cache \
39-
-I=$tmp_dir/loggregator-api/.
40-
```
41-
42-
You want `$trash_dir/log-cache/ruby-out/egress_pb.rb` and `$trash_dir/log-cache/grpc-out/egress_services_pb.rb`
43-
44-
45-
To generate the two v2/envelope_pb.rb file:
46-
47-
```
48-
mkdir -p $tmp_dir/loggregator-api
49-
cp $GOPATH/src/code.cloudfoundry.org/loggregator-api/v2/*proto $tmp_dir/loggregator-api/
50-
51-
RUBY_OUT=$trash_dir/loggregator-api/ruby-out
52-
GRPC_OUT=$trash_dir/loggregator-api/grpc-out
27+
out_dir=$(mktemp -d)
28+
echo "Out dir: $out_dir"
29+
RUBY_OUT=$out_dir/ruby-out
30+
GRPC_OUT=$out_dir/grpc-out
5331
mkdir -p $RUBY_OUT $GRPC_OUT
54-
grpc_tools_ruby_protoc \
55-
$tmp_dir/loggregator-api/*.proto \
56-
--go_out=plugins=grpc,Mv2/envelope.proto=code.cloudfoundry.org/go-loggregator/rpc/loggregator_v2:. \
57-
--ruby_out=$RUBY_OUT \
58-
--grpc_out=$GRPC_OUT \
59-
--proto_path=$tmp_dir/loggregator-api \
60-
--grpc-gateway_out=logtostderr=true:. \
61-
-I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
62-
-I=/usr/local/include \
63-
-I=$tmp_dir/log-cache \
64-
-I=$GOPATH/src/code.cloudfoundry.org/loggregator-api/.
6532
33+
protoc --plugin=protoc-gen-grpc=`which grpc_tools_ruby_protoc_plugin` --proto_path=$tmp_dir --ruby_out=$RUBY_OUT --grpc_out=$GRPC_OUT $tmp_dir/logcache/*.proto
6634
```
6735

68-
You want `$trash_dir/ruby-out/envelope_pb.rb`
36+
3. Copy `$out_dir/ruby_out/logcache/*` and `$out_dir/grpc_out/logcache` into `lib/logcache`.

lib/loggregator-api/README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
To generate the envelope_pb.rb file:
2+
3+
1. Install protoc 30.2 from https://github.com/protocolbuffers/protobuf/releases
4+
5+
2. Generate protobuf files:
6+
7+
```
8+
#!/bin/bash
9+
10+
tmp_dir=$(mktemp -d)
11+
12+
pushd $tmp_dir
13+
git clone https://github.com/cloudfoundry/loggregator-api
14+
15+
protoc --ruby_out=. loggregator-api/v2/envelope.proto
16+
popd
17+
```
18+
19+
3. Copy `$tmp_dir/envelope_pb.rb` to CC's `lib/loggregator-api/v2/`.

0 commit comments

Comments
 (0)