summaryrefslogtreecommitdiffstats
path: root/src/poem/anthology
diff options
context:
space:
mode:
authorRory Dudley2024-03-30 19:05:23 -0600
committerRory Dudley2024-03-30 19:05:23 -0600
commitd408624afeb0035217d3d327e21b24a62b803f28 (patch)
tree891f52eb69f827ca71de157ab67f51606c7b40f0 /src/poem/anthology
parent491d3fbff384d4b04483b54e5bb78d23bb1181c5 (diff)
downloaddwarvish-d408624afeb0035217d3d327e21b24a62b803f28.tar.gz
Add wrapper for global shell environment
Instead of having to pass around a bunch of different data structures for various shell functions, create the wrapper compose::Environment, which serves as a global shell state. It is configured via login/profile/rc scripts initially, but can of course be modified throughout the lifetime of the shell.
Diffstat (limited to 'src/poem/anthology')
-rw-r--r--src/poem/anthology/source.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/poem/anthology/source.rs b/src/poem/anthology/source.rs
index f7b9a0b..b4148cb 100644
--- a/src/poem/anthology/source.rs
+++ b/src/poem/anthology/source.rs
@@ -1,8 +1,9 @@
+use crate::compose::Environment;
use crate::poem::Verse;
use crate::poem::{read::Readable, recite::Reciteable, Poem};
use std::fs;
-pub fn incant(verse: &Verse, bins: &mut Vec<String>) -> i32 {
+pub fn incant(verse: &Verse, env: &mut Environment) -> i32 {
let files = match verse.clause() {
Some(clause) => clause,
None => {
@@ -32,7 +33,7 @@ pub fn incant(verse: &Verse, bins: &mut Vec<String>) -> i32 {
}
};
- match poem.recite(bins, None) {
+ match poem.recite(env, None) {
Ok(_) => {}
Err(e) => {
eprintln!("dwvsh: {}", e.to_string().to_lowercase());