2019-10-09 22:45:14 -07:00
|
|
|
#![feature(const_generics)]
|
|
|
|
|
|
|
|
mod common;
|
2019-10-06 11:54:09 -07:00
|
|
|
mod patch;
|
2019-10-09 22:45:14 -07:00
|
|
|
use crate::patch::patch::{PatchServerState, PatchTreeIterItem, generate_patch_tree, PATCH_PORT};
|
2019-07-17 23:17:57 -07:00
|
|
|
|
2019-06-25 15:14:53 -07:00
|
|
|
fn main() {
|
|
|
|
println!("[patch] starting server");
|
|
|
|
|
2019-10-03 23:12:44 -03:00
|
|
|
if let Err(_) = std::fs::read_dir("patchfiles/") {
|
|
|
|
if let Err(_) = std::fs::create_dir("patchfiles/") {
|
|
|
|
panic!("Could not create patchfiles directory!");
|
|
|
|
}
|
2019-10-03 20:47:49 -03:00
|
|
|
}
|
2019-06-25 15:14:53 -07:00
|
|
|
let (patch_file_tree, patch_file_lookup) = generate_patch_tree("patchfiles/");
|
2019-07-14 00:53:06 -07:00
|
|
|
println!("[patch] files to patch:");
|
|
|
|
let mut indent = 0;
|
|
|
|
for item in patch_file_tree.flatten() {
|
|
|
|
match item {
|
|
|
|
PatchTreeIterItem::Directory(path) => {
|
|
|
|
let s = path.to_str().unwrap();
|
|
|
|
println!("{: >2$}\u{2517}\u{2500}\u{2500} {}", "", s, indent * 4);
|
|
|
|
indent += 1;
|
|
|
|
},
|
|
|
|
PatchTreeIterItem::File(path, id) => {
|
|
|
|
let s = path.to_str().unwrap();
|
|
|
|
println!("{: >3$}\u{2520}\u{2500}\u{2500} {} ({})", "", s, id, indent * 4);
|
|
|
|
},
|
|
|
|
PatchTreeIterItem::UpDirectory => {
|
|
|
|
indent -= 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-06-29 09:54:28 -07:00
|
|
|
|
2019-09-04 09:17:22 -07:00
|
|
|
let patch_state = PatchServerState::new(patch_file_tree, patch_file_lookup);
|
2019-10-09 22:45:14 -07:00
|
|
|
common::mainloop::mainloop(patch_state, PATCH_PORT);
|
2019-08-23 23:01:36 -07:00
|
|
|
|
2019-06-25 15:14:53 -07:00
|
|
|
println!("[patch] exiting...");
|
|
|
|
}
|