1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#![allow(dead_code)]
use crate::extra::read_lines;
use std::path::PathBuf;
pub fn pkgdb_dir() -> Option<PathBuf> {
if cfg!(target_os = "netbsd") {
if let Ok(lines) = read_lines("/etc/mk.conf") {
for line in lines {
if let Ok(var) = line {
if var.starts_with("PKG_DBDIR") {
let pkg_db =
PathBuf::from(var.split("=").nth(1).unwrap().trim().to_string());
if pkg_db.is_dir() {
return Some(pkg_db);
}
}
continue;
}
}
}
return Some(PathBuf::from("/usr/pkg/pkgdb"));
}
None
}
pub fn localbase_dir() -> Option<PathBuf> {
if cfg!(target_os = "netbsd") {
if let Ok(lines) = read_lines("/etc/mk.conf") {
for line in lines {
if let Ok(var) = line {
if var.starts_with("LOCALBASE") {
let localbase =
PathBuf::from(var.split("=").nth(1).unwrap().trim().to_string());
if localbase.is_dir() {
return Some(localbase);
}
}
continue;
}
}
}
return Some(PathBuf::from("/usr/pkg"));
}
None
}
pub fn usr_share_dir() -> Option<PathBuf> {
Some(PathBuf::from("/usr/share"))
}