Skip to content

Commit 3bc4f93

Browse files
authored
Exit with failure codes if configs are bad (#146)
* Exit with failure codes if configs are bad * fmt
1 parent 9d84d6f commit 3bc4f93

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

.circleci/run_tests.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
set -e
44
set -o xtrace
55

6+
# non-zero exit code if we provide bad configs
7+
(! ./target/debug/pgcat "fake_configs" 2>/dev/null)
8+
69
# Start PgCat with a particular log level
710
# for inspection.
811
function start_pgcat() {

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ tokio-rustls = "0.23"
3333
rustls-pemfile = "1"
3434
hyper = { version = "0.14", features = ["full"] }
3535
phf = { version = "0.10", features = ["macros"] }
36+
exitcode = "1.1.2"

src/main.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ extern crate async_trait;
2424
extern crate bb8;
2525
extern crate bytes;
2626
extern crate env_logger;
27+
extern crate exitcode;
2728
extern crate log;
2829
extern crate md5;
2930
extern crate num_cpus;
@@ -78,7 +79,7 @@ async fn main() {
7879

7980
if !query_router::QueryRouter::setup() {
8081
error!("Could not setup query router");
81-
return;
82+
std::process::exit(exitcode::CONFIG);
8283
}
8384

8485
let args = std::env::args().collect::<Vec<String>>();
@@ -93,7 +94,7 @@ async fn main() {
9394
Ok(_) => (),
9495
Err(err) => {
9596
error!("Config parse error: {:?}", err);
96-
return;
97+
std::process::exit(exitcode::CONFIG);
9798
}
9899
};
99100

@@ -108,7 +109,7 @@ async fn main() {
108109
Ok(addr) => addr,
109110
Err(err) => {
110111
error!("Invalid http address: {}", err);
111-
return;
112+
std::process::exit(exitcode::CONFIG);
112113
}
113114
};
114115
tokio::task::spawn(async move {
@@ -122,7 +123,7 @@ async fn main() {
122123
Ok(sock) => sock,
123124
Err(err) => {
124125
error!("Listener socket error: {:?}", err);
125-
return;
126+
std::process::exit(exitcode::CONFIG);
126127
}
127128
};
128129

@@ -142,7 +143,7 @@ async fn main() {
142143
Ok(_) => (),
143144
Err(err) => {
144145
error!("Pool error: {:?}", err);
145-
return;
146+
std::process::exit(exitcode::CONFIG);
146147
}
147148
};
148149

0 commit comments

Comments
 (0)