aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbnewbold <bnewbold@robocracy.org>2016-11-29 20:45:55 -0800
committerbnewbold <bnewbold@robocracy.org>2016-11-29 20:45:55 -0800
commit27b3f5e9c8bdfbd63ec06cd0a3472f80ba8d3752 (patch)
tree00e4bb9128c95e374c26843e7d9b6dea82320f46
parent57c8bea738990b9cd5efcfbc081249025fa5d608 (diff)
downloadmodelthing-27b3f5e9c8bdfbd63ec06cd0a3472f80ba8d3752.tar.gz
modelthing-27b3f5e9c8bdfbd63ec06cd0a3472f80ba8d3752.zip
small improvements to CLI tools
-rw-r--r--src/bin/mt-tool.rs6
-rw-r--r--src/lib.rs2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/bin/mt-tool.rs b/src/bin/mt-tool.rs
index 7dab194..03f590a 100644
--- a/src/bin/mt-tool.rs
+++ b/src/bin/mt-tool.rs
@@ -100,8 +100,10 @@ fn main() {
println!("{}", me.ast.repr_js().unwrap());
},
"list" => {
- // XXX: search path?
- for m in modelthing::search_models(Path::new("examples")) {
+ let search_path =
+ if matches.free.len() >= 2 { matches.free[1].clone() }
+ else { "examples".to_string() };
+ for m in modelthing::search_models(Path::new(&search_path)) {
println!("{}", m)
}
},
diff --git a/src/lib.rs b/src/lib.rs
index 2a098ee..508eeec 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -108,12 +108,12 @@ pub fn load_model_entry(p: &Path) -> Result<ModelEntry,String> {
})
}
-// TODO: have this check for model.modelica etc
pub fn search_models(p: &Path) -> Vec<String> {
if fs::metadata(p).unwrap().is_dir() {
fs::read_dir(p).unwrap()
.map(|x| x.unwrap())
.filter(|x| x.metadata().unwrap().is_dir())
+ .filter(|x| x.path().join("model.modelica").exists())
.map(|x| x.path().to_string_lossy().to_string())
.collect()
} else {