Crates.io | varsun |
lib.rs | varsun |
version | 0.1.1 |
source | src |
created_at | 2016-08-07 13:00:13.910766 |
updated_at | 2016-08-11 08:11:58.611162 |
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 (ちくちく('ω')ごんざれす)