summaryrefslogtreecommitdiffstats
path: root/src/poem/recite.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/poem/recite.rs')
-rw-r--r--src/poem/recite.rs26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/poem/recite.rs b/src/poem/recite.rs
index e37b7c6..9a425e8 100644
--- a/src/poem/recite.rs
+++ b/src/poem/recite.rs
@@ -54,6 +54,18 @@ impl Reciteable for Poem {
}
}
+ // Check for aliases
+ match env.aliases.get(&verse.verb()) {
+ Some(verb) => {
+ let mut split: Vec<String> = verb.split(" ").map(|s| s.to_string()).collect();
+ let mut old_stanza = verse.stanza.clone();
+ old_stanza.remove(0);
+ split.append(&mut old_stanza);
+ verse.stanza = split;
+ }
+ None => {}
+ };
+
// Run interal poems
let v = verse.clone();
let mut new_stanza = None;
@@ -129,15 +141,19 @@ impl Reciteable for Poem {
// If it doesn't exist, try refreshing the binary cache, and check
// again
// If it still doesn't exist, print an error
- if !verse.spellcheck(&env.bins) {
- env.bins = path::refresh();
+ if !verse.verb().is_empty() {
if !verse.spellcheck(&env.bins) {
- eprintln!("dwvsh: {}: command not found", verse.verb());
+ env.bins = path::refresh();
+ if !verse.spellcheck(&env.bins) {
+ eprintln!("dwvsh: {}: command not found", verse.verb());
- if verse.meter != Rune::And {
- continue;
+ if verse.meter != Rune::And {
+ continue;
+ }
}
}
+ } else {
+ continue;
}
if stdout {