Expand description
Read and parse MySQL’s .mylogin.cnf file.
§Installation
Add myloginrs to Cargo.toml:
[dependencies]
myloginrs = "0.2"§Examples
To get a HashMap of login info for "client" just use the parse function:
let file_path = PathBuf::from(
"tests/test_mylogin.cnf",
);
let client_info = myloginrs::parse("client", Some(&file_path));Then you can use that HashMap with an OptsBuilder or other structs
from the mysql:
let opts = OptsBuilder::new()
.ip_or_hostname(Some(&client_info["host"]))
.tcp_port(u16::from_str_radix(&client_info["port"], 10)?)
.user(Some(&client_info["user"]))
.pass(Some(&client_info["password"]));
let _conn = Conn::new(opts);Starting with mysql 20.1.0, you can do the even simpler:
let opts = OptsBuilder::new().from_hash_map(&client_info).unwrap();
let _conn = Conn::new(opts);If you would rather get a String that contains the whole file, use read:
let mylogin_plaintext = myloginrs::read(None);
println!("{}", mylogin_plaintext);This second example passes None as the path to use the
default .mylogin.cnf location (%APPDATA%\MySQL\.mylogin.cnf on windows or
~/.mylogin.cnf on everything else).