@@ -11,6 +11,7 @@ pub struct Config {
1111 pub influxdb_bucket : String ,
1212 pub influxdb_measurement : String ,
1313 pub jsoncan_config_path : String ,
14+ pub backend_port : u32 ,
1415}
1516
1617pub static CONFIG : LazyLock < Config > = LazyLock :: new ( || load_env_file ( ) ) ;
@@ -22,28 +23,22 @@ fn load_env_file() -> Config {
2223 from_filename ( DEFAULT_BACKEND_ENV_FILE )
2324 . expect ( & format ! ( "{} file not found, could not load env file!" , DEFAULT_BACKEND_ENV_FILE ) ) ;
2425
25- let serial_port: String = var ( "SERIAL_PORT" )
26- . expect ( "SERIAL_PORT is missing!" ) ;
26+ let serial_port: String = get_var :: < String > ( "SERIAL_PORT" ) ;
2727
28- let influxdb_url: String = var ( "INFLUXDB_URL" )
29- . expect ( "INFLUXDB_URL is missing!" ) ;
28+ let influxdb_url: String = get_var :: < String > ( "INFLUXDB_URL" ) ;
3029
31- let influxdb_org: String = var ( "INFLUXDB_ORG" )
32- . expect ( "INFLUXDB_ORG is missing!" ) ;
30+ let influxdb_org: String = get_var :: < String > ( "INFLUXDB_ORG" ) ;
3331
34- let influxdb_token: String = var ( "INFLUXDB_TOKEN" )
35- . expect ( "INFLUXDB_TOKEN is missing!" ) ;
32+ let influxdb_token: String = get_var :: < String > ( "INFLUXDB_TOKEN" ) ;
3633
37- let influxdb_bucket: String = var ( "INFLUXDB_BUCKET" )
38- . expect ( "INFLUXDB_BUCKET is missing!" ) ;
34+ let influxdb_bucket: String = get_var :: < String > ( "INFLUXDB_BUCKET" ) ;
3935
40- let car_name = format ! (
41- "{}_live" ,
42- var( "CAR_NAME" ) . expect( "CAR_NAME is missing!" )
43- ) ;
36+ let car_name = get_var :: < String > ( "CAR_NAME" ) ;
4437
4538 let influxdb_measurement: String = format ! ( "{car_name}_live" ) ;
4639
40+ let backend_port: u32 = get_var :: < u32 > ( "BACKEND_PORT" ) ;
41+
4742 return Config {
4843 serial_port : serial_port,
4944 serial_baud_rate : 57600 , // hardcoded baudrate, probably wont ever change this
@@ -53,5 +48,13 @@ fn load_env_file() -> Config {
5348 influxdb_bucket : influxdb_bucket,
5449 influxdb_measurement : influxdb_measurement,
5550 jsoncan_config_path : format ! ( "../../../can_bus/{car_name}" ) , // i love hardcoding
51+ backend_port : backend_port
5652 }
53+ }
54+
55+ fn get_var < T : std:: str:: FromStr > ( env_key : & str ) -> T {
56+ return var ( env_key)
57+ . expect ( & format ! ( "{} is missing!" , env_key) )
58+ . parse :: < T > ( )
59+ . ok ( ) . unwrap ( ) ;
5760}
0 commit comments