-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgenerate-docs.sh
executable file
·151 lines (133 loc) · 4.63 KB
/
generate-docs.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
BRIAR_DIR=$(pwd)
DOC_DIR=$BRIAR_DIR/doc
DOC_BUILD_DIR=$BRIAR_DIR/doc/build
PROTO_DIR=$BRIAR_DIR/proto/briar/briar_grpc
PYTHON_DIR=$BRIAR_DIR/lib/python/briar
PDF_DIR=$DOC_DIR/pdf
STUB_DIR=$DOC_DIR/stubs
# colorize text to make sections more visible when scrolling through walls of doxygen/latex spam
GREEN='\033[0;32m'
NC='\033[0m' # No Color
mkdir -p $PDF_DIR
mkddif -p $STUB_DIR
# TODO Latex is very loud. Need to figure out a way to make it Shut Up when running in the makefiles.
########################
# Protobuf Documentation
########################
echo -e "${GREEN}[Protobuf Documents]${NC}"
echo -e "${GREEN}Generating Protobuf HTML...${NC}"
cd $BRIAR_DIR
protoc --doc_out=html,Protbuf-Object-Doc.html:doc --proto_path=proto proto/briar/briar_grpc/*.proto
mkdir -p $DOC_BUILD_DIR/proto
echo -e "${GREEN}Generating Doxygen...${NC}"
cd $PROTO_DIR
doxygen doxyfile-protobuf
echo -e "${GREEN}Generating PDF${NC}"
cd $DOC_BUILD_DIR/proto/latex
make pdf
cp refman.pdf $PDF_DIR/Protobuf-Documentation.pdf
########################
# Stub Documentation
########################
echo -e "${GREEN}[gRPC Stubs]${NC}"
cd $PROTO_DIR
mkdir -p $STUB_DIR
# Generate the C++ Stub Documentation
cd $PROTO_DIR
echo -e "${GREEN}Generating C++ Stub Doxygen...${NC}"
mkdir -p $DOC_BUILD_DIR/stubs/cpp
doxygen doxyfile-stubs-cpp
echo -e "${GREEN}Generating C++ Stub PDF...${NC}"
cd $DOC_BUILD_DIR/stubs/cpp/latex
make pdf
cp refman.pdf $STUB_DIR/CPP-Stub-Documentation.pdf
# Generate the C# Stub Documentation
cd $PROTO_DIR
echo -e "${GREEN}Generating C# Stub Doxygen...${NC}"
mkdir -p $DOC_BUILD_DIR/stubs/csharp
doxygen doxyfile-stubs-csharp
echo -e "${GREEN}Generating C# Stub PDF...${NC}"
cd $DOC_BUILD_DIR/stubs/csharp/latex
make pdf
cp refman.pdf $STUB_DIR/CSharp-Stub-Documentation.pdf
# Generate the Javascript Stub Documentation
cd $PROTO_DIR
echo -e "${GREEN}Generating Javascript Stub Doxygen...${NC}"
mkdir -p $DOC_BUILD_DIR/stubs/js
doxygen doxyfile-stubs-js
echo -e "${GREEN}Generating Javascript Stub PDF...${NC}"
cd $DOC_BUILD_DIR/stubs/js/latex
make pdf
cp refman.pdf $STUB_DIR/Javascript-Stub-Documentation.pdf
# Generate the Objective C Stub Documentation
cd $PROTO_DIR
echo -e "${GREEN}Generating C Stub Doxygen...${NC}"
mkdir -p $DOC_BUILD_DIR/stubs/objc
doxygen doxyfile-stubs-objc
echo -e "${GREEN}Generating C Stub PDF...${NC}"
cd $DOC_BUILD_DIR/stubs/objc/latex
make pdf
cp refman.pdf $STUB_DIR/ObjC-Stub-Documentation.pdf
# Generate the PHP Stub Documentation
cd $PROTO_DIR
echo -e "${GREEN}Generating PHP Stub Doxygen...${NC}"
mkdir -p $DOC_BUILD_DIR/stubs/php
doxygen doxyfile-stubs-php
echo -e "${GREEN}Generating PHP Stub PDF...${NC}"
cd $DOC_BUILD_DIR/stubs/php/latex
make pdf
cp refman.pdf $STUB_DIR/PHP-Stub-Documentation.pdf
# Generate the Python Stub Documentation
cd $PROTO_DIR
echo -e "${GREEN}Generating Python Stub Doxygen...${NC}"
mkdir -p $DOC_BUILD_DIR/stubs/python
doxygen doxyfile-stubs-python
echo -e "${GREEN}Generating Python Stub PDF...${NC}"
cd $DOC_BUILD_DIR/stubs/python/latex
make pdf
cp refman.pdf $STUB_DIR/Python-Stub-Documentation.pdf
# Generate the Ruby Stub Documentation
cd $PROTO_DIR
echo -e "${GREEN}Generating Ruby Stub Doxygen...${NC}"
mkdir -p $DOC_BUILD_DIR/stubs/ruby
doxygen doxyfile-stubs-ruby
echo -e "${GREEN}Generating Ruby Stub PDF...${NC}"
cd $DOC_BUILD_DIR/stubs/ruby/latex
make pdf
cp refman.pdf $STUB_DIR/Ruby-Stub-Documentation.pdf
#########################################
# Python Client and Service Documentation
#########################################
echo -e "${GREEN}[Python Documents]${NC}"
cd $PYTHON_DIR
mkdir $PDF_DIR
# Genearate documenation for the python client
echo -e "${GN}Generating Python Client Doxygen${NC}"
mkdir -p $DOC_BUILD_DIR/python_client
doxygen doxyfile-cli
echo -e "${GREEN}Generating Python Client PDF${NC}"
cd $DOC_BUILD_DIR/python_client/latex
make pdf
cp refman.pdf $PDF_DIR/Python-Client-Documentation.pdf
# Generate documentation for the example python service
echo -e "${GREEN}Generating Example Python Service Documents${NC}"
cd $DOC_DIR
mkdir -p $DOC_BUILD_DIR/example_python_service
doxygen doxyfile-python-service
echo -e "${GREEN}Generating Example Python Service PDF${NC}"
cd $DOC_BUILD_DIR/example_python_service/latex
make pdf
cp refman.pdf $PDF_DIR/Example-Python-Service-Documentation.pdf
#########################################
# BRIAR Main Documentation
#########################################
echo -e "${GREEN}[Main Readme]${NC}"
cd $BRIAR_DIR
# Generate the main repo readme
echo -e "${GREEN}Generating Repo Doxygen...${NC}"
doxygen doxyfile-main
echo -e "${GREEN}Generating Repo PDF...${NC}"
cd $DOC_BUILD_DIR/main/latex
make pdf
cp refman.pdf $PDF_DIR/Readme-And-How-To-Documentation.pdf
cd $BRIAR_DIR