add control wrapper

This commit is contained in:
Ben Grewell
2021-04-01 13:19:47 -07:00
parent 1dd7340d4b
commit ab0c867aa1
11 changed files with 380 additions and 79 deletions

21
api/Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
# Dockerfile.protogen
FROM golang:latest
LABEL maintainer="Benjamin Grewell <bgrewell@gmail.com>"
ENV PROTOC_VERSION 3.6.1
ENV PROTOC_GEN_GO_VERSION v1.2.0
WORKDIR /go/src/github.com/BGrewell/go-iperf/api/proto
RUN apt update
RUN apt install -y protobuf-compiler python3 python3-pip
RUN go get -u github.com/golang/protobuf/protoc-gen-go
RUN pip3 install grpcio-tools
RUN export PATH=$PATH:$GOPATH/bin
RUN echo $PATH
COPY proto/control.proto control.proto
RUN mkdir go
RUN protoc -I /. --go_out=plugins=grpc:go control.proto

22
api/build.sh Normal file
View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
if [ ! -d go ]; then
echo "[!] Creating go output directory"
mkdir go;
fi
echo "[+] Building docker container"
docker image build -t go-iperf-builder:1.0 .
docker container run --detach --name builder go-iperf-builder:1.0
docker cp grpc:/go/src/github.com/BGrewell/go-iperf/api/go/api.pb.go go/.
echo "[+] Updating of go library complete"
echo "[+] Removing docker container"
docker rm builder
echo "[+] Adding new files to source control"
git add go/api.pb.go
git commit -m "regenerated grpc libraries"
git push
echo "[+] Done. Everything has been rebuilt and the repository has been updated and pushed"

27
api/proto/control.proto Normal file
View File

@@ -0,0 +1,27 @@
syntax = "proto3";
import "google/protobuf/empty.proto";
// [START java_declaration]
option java_multiple_files = true;
option java_package = "com.bengrewell.go-iperf.control";
option java_outer_classname = "Control";
// [END java_declaration]
// [START csharp_declaration]
option csharp_namespace = "BenGrewell.GoIperf.Control";
// [END csharp_declaration]
package api;
service Command {
rpc StartServer(StartServerRequest) returns (StartServerResponse) {}
}
message StartServerRequest {
}
message StartServerResponse {
string id = 1;
int32 listen_port = 2;
}