123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- use std::fmt::Display;
- use crate::log::logger;
- use std::str::FromStr;
- const DEFAULT_BOOTDEV: &str = "/dev/mmcblk0p1";
- const DEFAULT_BOOTFS: &str = "vfat";
- const DEFAULT_RUMIA_DEBUG: &str = "0";
- pub fn get_env_with_default<T>(varname: &str, default: T) -> String
- where T : ToString + Display
- {
- let res = std::env::var(varname);
- match res {
- Ok(v) => {
- if v.is_empty() {
- logger().info("env", format!("use default '{}' value: {}", varname, default).as_str());
- default.to_string()
- }else{
- v
- }
- },
- Err(err) => {
- logger().warn("env", format!("failed get env var '{}': {}", varname, err).as_str());
- logger().info("env", format!("use default '{}' value: {}", varname, default).as_str());
- default.to_string()
- }
- }
- }
- pub fn get_debug() -> bool {
- let dbg_str = get_env_with_default("RUMIA_DEBUG", DEFAULT_RUMIA_DEBUG);
- let res = FromStr::from_str(dbg_str.as_str());
- let num: u32 = match res {
- Ok(v) => {
- v
- }
- Err(err) => {
- logger().warn("env", format!("failed parse env var 'RUMIA_DEBUG': can not convert to u32: {:?}", err).as_str());
- 0
- }
- };
- num > 0
- }
- pub fn get_bootdev() -> String {
- get_env_with_default("bootdev", DEFAULT_BOOTDEV)
- }
- pub fn get_bootfs() -> String {
- get_env_with_default("bootfs", DEFAULT_BOOTFS)
- }
|