diff options
author | Rory Dudley | 2024-02-22 23:12:24 -0700 |
---|---|---|
committer | Rory Dudley | 2024-02-22 23:12:24 -0700 |
commit | 536e250653e5c140a6d9e60f1cd652b79135e7a6 (patch) | |
tree | 6a6b212c913f52d559ed9ea8a9477bebb9b38a2d /src/recite | |
parent | a14fdf8faa85628baf06399961eb1f9ab4c5f3eb (diff) | |
download | dwarvish-536e250653e5c140a6d9e60f1cd652b79135e7a6.tar.gz |
Reorganization and comments
Broke out the structs for a poem into their own file: src/recite.rs.
Also put the 'prefresh' function into it's own file: src/recite/path.rs.
Commented most of the parser code (including structs and helper methods
related to parsing (i.e. Verse, Stanza, Meter, Poem)). Renamed any
instance of the 'paths' variable to 'path'.
Notes
Notes:
The biggest task now is to cleanup Poem::recite. It has a ton of bogus
error messages, and (seemingly) redundant code.
Diffstat (limited to 'src/recite')
-rw-r--r-- | src/recite/path.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/recite/path.rs b/src/recite/path.rs new file mode 100644 index 0000000..28eb45b --- /dev/null +++ b/src/recite/path.rs @@ -0,0 +1,42 @@ +use std::fs; +use std::path::Path; + +/// Refresh the shell's $PATH +/// +/// This function caches all valid paths within within the directories +/// specified. +/// +/// # Arguments +/// * `paths` - A reference to a vector that holds a list to the shell $PATHs +/// +/// # Returns +/// * `bins: Vec<String>` - A new cache of all valid file paths in $PATH +/// +/// # Examples +/// ``` +/// let path = vec!["/bin"]; +/// let path = path.into_iter().map(Path::new).collect(); +/// let mut bins = prefresh(&path); +/// ... +/// // A situation occurs where the $PATH needs to be refreshed +/// bins = prefresh(&path) +/// ``` +pub fn prefresh(path: &Vec<&Path>) -> Vec<String> { + let mut bins: Vec<String> = Vec::new(); + + for p in path { + let files = fs::read_dir(p).expect( + format!( + "dwvsh: error: unable to read the contents of {}", + p.display().to_string() + ) + .as_str(), + ); + + for file in files { + bins.push(file.unwrap().path().display().to_string()); + } + } + + bins +} |