snip_cli/helpers/
expand_home_dir.rs1use dirs_next::home_dir;
2use std::path::PathBuf;
3
4pub fn expand_home_dir(path: &str) -> PathBuf {
5 if path.starts_with("~") {
6 if let Some(mut home) = home_dir() {
7 home.push(&path[2..]);
8 home
9 } else {
10 PathBuf::from("/tmp/snip.json")
12 }
13 } else {
14 PathBuf::from(path)
15 }
16}
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21
22 #[test]
23 fn test_expand_home_dir() {
24 let home = home_dir().unwrap();
25 assert_eq!(
26 expand_home_dir("~/test"),
27 home.join("test"),
28 "Failed to expand home directory"
29 );
30 assert_eq!(
31 expand_home_dir("/test"),
32 PathBuf::from("/test"),
33 "Failed to expand home directory"
34 );
35 }
36
37 #[test]
38 fn test_providing_pull_path_on_expand_home_dir() {
39 assert_eq!(
40 expand_home_dir("/Users/uriah/Code/rustacean/src"),
41 PathBuf::from("/Users/uriah/Code/rustacean/src"),
42 "Failed to expand home directory"
43 )
44 }
45}