1extern crate daemonize;
3
4use daemonize::Daemonize;
5use fs::File;
6use std::fs;
7
8pub fn get_log_dir(mtg_arena_tool_log_dir: &str) {
10
11 use std::process::Command;
13
14 let mut binding = Command::new("test");
16 let logdir = binding.arg("-d").arg(mtg_arena_tool_log_dir);
17
18 println!(
23 "Monitoring MTG Arena Tool log directory {}",
24 mtg_arena_tool_log_dir
25 );
26
27}
28
29pub fn daemonize() {
31
32 let stdout = File::create("/tmp/mtgadmin.out").unwrap();
33 let stderr = File::create("/tmp/mtgadmin.err").unwrap();
34
35 let daemonize = Daemonize::new()
36 .pid_file("/tmp/mtgadmin.pid") .chown_pid_file(false) .working_directory("/tmp") .user("nobody")
40 .group("daemon") .group(1) .umask(0o027) .stdout(stdout) .stderr(stderr) .privileged_action(|| "Executed before drop privileges");
46
47 match daemonize.start() {
48 Ok(_) => println!("Successfully daemonized mtgadmin...!"),
49 Err(e) => eprintln!("Unknown error! mtgadmin failed to daemonize...!, {}", e),
50 }
51
52 }
54
55pub fn get_api_endpoint(api_endpoint: &str) {
57
58 println!("API endpoint to upload game data to: {}", api_endpoint);
62
63 if api_endpoint.eq("17lands") {
69 println!("17lands is a supported API endpoint!");
71 }
72
73 }
75
76pub fn upload_game_data_to_17lands(mtg_arena_tool_log_dir: &str, api_endpoint: &str) {
78
79 use std::process::Command;
81 extern crate execute;
82
83 println!("Uploading MTGA game data to API endpoint {}", api_endpoint);
85
86 for entry in fs::read_dir(mtg_arena_tool_log_dir).unwrap() {
88 let entry = entry.unwrap();
89 let path = entry.path();
90
91 if path.is_dir() {
92 println!("{:?} is a dir", path);
94 } else {
95 println!("{:?} appears to be an MTGA game log file", path);
97 let mut binding = Command::new("seventeenlands");
98 let landscmd = binding
99
100 .arg("-l")
101 .arg(mtg_arena_tool_log_dir.to_owned() + "{:?}");
102
103 println!("Debug info: {:?}", landscmd.output());
105 println!("Uploading MTGA game data to 17lands...");
106
107 }
108
109 }
110 }