harmont_cli/plugin/
paths.rs1#![allow(clippy::must_use_candidate)]
7#![cfg_attr(test, allow(clippy::expect_used))]
10
11use std::path::PathBuf;
12
13pub fn user_plugins_dir() -> Option<PathBuf> {
16 dirs::config_dir().map(|p| p.join("harmont").join("plugins"))
17}
18
19pub fn project_plugins_dir() -> Option<PathBuf> {
21 std::env::current_dir()
22 .ok()
23 .map(|p| p.join(".harmont").join("plugins"))
24}
25
26pub fn install_dir() -> Option<PathBuf> {
28 user_plugins_dir()
29}
30
31#[cfg(test)]
32mod tests {
33 use super::*;
34
35 #[test]
36 fn user_plugins_dir_resolves() {
37 let p = user_plugins_dir().expect("config dir resolves");
38 assert!(p.ends_with("harmont/plugins"));
39 }
40}