| Crates.io | varsun |
| lib.rs | varsun |
| version | 0.1.1 |
| created_at | 2016-08-07 13:00:13.910766+00 |
| updated_at | 2016-08-11 08:11:58.611162+00 |
| description | varsun provides shell/command-prompt like variable substition functions. |
| homepage | |
| repository | https://github.com/chikuchikugonzalez/varsun |
| max_upload_size | |
| id | 5913 |
| size | 15,487 |
Go言語における os.ExpandEnv 相当のものが欲しかったけど、標準ライブラリには見当たらなかった。
そんなわけで必要な機能を持ったものを作ろうとした結果がこの varsun である。
$foo や ${bar} を見つけて、それを対応する文字列へと置き換える%foo% も対応。varsun 直下の関数を使うと、Windows なら %foo% を、それ以外は %foo を認識するように自動的に切り替わる。cargo bench が動かん(´・ω・`)extern crate varsun;
// on Linux system.
let homedir = varsun::substitute("$HOME", |name: &str| -> Option<String> {
match ::std::env::var(name) {
Ok(val) => Some(val),
Err(_) => NOne,
}
});
// on Windows.
let homedir = varsun::substitute("%USERPROFILE%", |name: &str| -> Option<String> {
match ::std::env::var(name) {
Ok(val) => Some(val),
Err(_) => None,
}
});
$HOGE) を使う - Use POSIX ($HOGE) style always -extern crate varsun;
// on Linux.
let homedir = varsun::posix::substitute("${HOME}", |name: &str| -> Option<String> {
match ::std::env::var(name) {
Ok(val) => Some(val),
Err(_) => None,
}
});
// on Windows.
let homedir = varsun::posix::substitute("${USERPROFILE}", |name: &str| -> Option<String> {
match ::std::env::var(name) {
Ok(val) => Some(val),
Err(_) => None,
}
});
%HOGE%) を使う - Use Windows (%HOGE%) style always -extern crate varsun;
// on Linux.
let homedir = varsun::windows::substitute("%HOME%", |name: &str| -> Option<String> {
match ::std::env::var(name) {
Ok(val) => Some(val),
Err(_) => None,
}
});
// on Windows.
let homedir = varsun::windows::substitute("%USERPROFILE%", |name: &str| -> Option<String> {
match ::std::env::var(name) {
Ok(val) => Some(val),
Err(_) => None,
}
});
TANAKA Kenichi aka chikuchikugonzalez (ちくちく('ω')ごんざれす)