Skip to content

Commit 295e3ea

Browse files
committed
Read VERSION_FILE location from env
1 parent c95c7ce commit 295e3ea

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Via environment variables:
2424
- `HOST`: host (default: `localhost`)
2525
- `PORT`: port number (default: `8080`)
2626
- `GEOIP_DB_PATH`: path to GeoIP database (default: `./GeoLite2-Country.mmdb`)
27+
- `VERSION_FILE`: path to `version.json` file (default: `./version.json`)
2728

2829
## Tests
2930

src/main.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use crate::{errors::ClassifyError, settings::Settings};
2121
#[derive(Clone)]
2222
struct State {
2323
geoip: actix::Addr<GeoIpActor>,
24+
settings: settings::Settings,
2425
}
2526

2627
fn main() {
@@ -47,9 +48,9 @@ fn main() {
4748
})
4849
};
4950

50-
let state = State { geoip };
51+
let state = State { geoip, settings };
5152

52-
let addr = format!("{}:{}", settings.host, settings.port);
53+
let addr = format!("{}:{}", state.settings.host, state.settings.port);
5354
let server = actix_web::server::new(move || {
5455
App::with_state(state.clone())
5556
.resource("/", |r| r.get().f(index))
@@ -233,8 +234,10 @@ fn heartbeat(req: &HttpRequest<State>) -> FutureResponse<HttpResponse> {
233234
)
234235
}
235236

236-
fn version(_req: &HttpRequest<State>) -> HttpResponse {
237-
let mut file = File::open("./version.json").unwrap();
237+
fn version(req: &HttpRequest<State>) -> HttpResponse {
238+
let version_file = &req.state().settings.version_file;
239+
// Read the file or deliberately fail with a 500 if missing.
240+
let mut file = File::open(version_file).unwrap();
238241
let mut data = String::new();
239242
file.read_to_string(&mut data).unwrap();
240243
HttpResponse::Ok()

src/settings.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ pub struct Settings {
77
pub host: String,
88
pub port: u16,
99
pub geoip_db_path: PathBuf,
10+
pub version_file: PathBuf,
1011
}
1112

1213
impl Default for Settings {
@@ -15,6 +16,7 @@ impl Default for Settings {
1516
host: "[::]".to_owned(),
1617
port: 8080,
1718
geoip_db_path: "./GeoLite2-Country.mmdb".into(),
19+
version_file: "./version.json".into(),
1820
}
1921
}
2022
}

0 commit comments

Comments
 (0)