summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRory Dudley2024-04-11 21:49:51 -0600
committerRory Dudley2024-04-11 21:49:51 -0600
commit87e4a3da43e7d203d3405f977ce8e93298dd55c3 (patch)
tree111eb60af072f036bd7f7ba4e116a5a57f053b41
parent6198c54a9e1155bb9b7f93b8cb5daf3e2deddb25 (diff)
downloaddwarvish-87e4a3da43e7d203d3405f977ce8e93298dd55c3.tar.gz
Sort output of 'export' and 'alias'
Sort the output of the built-in 'export' and 'alias' commands, in cases where all environment variables/aliases are printed out.
-rw-r--r--src/poem/anthology/alias.rs4
-rw-r--r--src/poem/anthology/export.rs4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/poem/anthology/alias.rs b/src/poem/anthology/alias.rs
index 248342e..511bd3a 100644
--- a/src/poem/anthology/alias.rs
+++ b/src/poem/anthology/alias.rs
@@ -1,4 +1,5 @@
use crate::poem::Verse;
+use std::collections::BTreeMap;
use std::collections::HashMap;
/// alias
@@ -23,7 +24,8 @@ pub fn incant(verse: &Verse, out: &mut Vec<u8>, aliases: &mut HashMap<String, St
}
None => {
let mut lines = Vec::new();
- for (key, val) in aliases {
+ let sorted: BTreeMap<_, _> = aliases.into_iter().collect();
+ for (key, val) in sorted {
let line = if key.contains(' ') && val.contains(' ') {
format!("'{}'='{}'", key, val)
} else if key.contains(' ') {
diff --git a/src/poem/anthology/export.rs b/src/poem/anthology/export.rs
index dfbaf81..aa5a894 100644
--- a/src/poem/anthology/export.rs
+++ b/src/poem/anthology/export.rs
@@ -1,4 +1,5 @@
use crate::poem::Verse;
+use std::collections::BTreeMap;
use std::env;
/// export
@@ -26,7 +27,8 @@ pub fn incant(verse: &Verse) -> i32 {
}
}
None => {
- for (key, val) in env::vars() {
+ let sorted: BTreeMap<_, _> = env::vars().into_iter().collect();
+ for (key, val) in sorted {
println!("{}={}", key, val);
}
}