Expand description
Read and parse MySQL’s .mylogin.cnf file.
Installation
Add myloginrs
to Cargo.toml
:
[dependencies]
myloginrs = "0.1"
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).