1use std::fs;
2use tokio::process::Command;
3use tracing::info;
4
5#[cfg(target_os = "macos")]
7pub fn mount() {
8 fs::create_dir_all("/tmp/lockbook").unwrap();
9
10 Command::new("mount_nfs")
11 .arg("-o")
12 .arg("nolocks,vers=3,tcp,rsize=131072,actimeo=120,port=11111,mountport=11111")
13 .arg("localhost:/")
14 .arg("/tmp/lockbook")
15 .spawn()
16 .unwrap();
17}
18
19#[cfg(target_os = "linux")]
21pub fn mount() {
22 fs::create_dir_all("/tmp/lockbook").unwrap();
23
24 Command::new("sudo")
25 .arg("mount.nfs")
26 .arg("-o")
27 .arg("user,noacl,nolock,vers=3,tcp,wsize=1048576,rsize=131072,actimeo=120,port=11111,mountport=11111")
28 .arg("localhost:/")
29 .arg("/tmp/lockbook")
30 .spawn()
31 .unwrap();
32}
33
34#[cfg(target_os = "windows")]
35pub fn mount() {
36 fs::create_dir_all("/tmp/lockbook").unwrap();
37
38 Command::new("mount.exe")
39 .arg("-o")
40 .arg("anon,nolock,mtype=soft,fileaccess=6,casesensitive,lang=ansi,rsize=128,wsize=128,timeout=60,retry=2")
41 .arg("localhost:/")
42 .arg("/tmp/lockbook")
43 .spawn()
44 .unwrap();
45}
46
47#[cfg(target_os = "linux")]
48pub async fn umount() {
49 info!("umounting");
50 Command::new("sudo")
51 .arg("umount")
52 .arg("/tmp/lockbook")
53 .spawn()
54 .unwrap()
55 .wait()
56 .await
57 .unwrap();
58}
59
60#[cfg(target_os = "macos")]
61pub async fn umount() {
62 info!("umounting");
63 Command::new("umount")
64 .arg("/tmp/lockbook")
65 .spawn()
66 .unwrap()
67 .wait()
68 .await
69 .unwrap();
70}
71
72#[cfg(target_os = "windows")]
73pub async fn umount() {
74 info!("todo");
75 todo!()
76}