Initial Commit
This commit is contained in:
67
src/main.rs
Normal file
67
src/main.rs
Normal file
@ -0,0 +1,67 @@
|
||||
mod packagemanager;
|
||||
use packagemanager::*;
|
||||
|
||||
mod management;
|
||||
use management::Management;
|
||||
|
||||
mod config;
|
||||
use config::Config;
|
||||
|
||||
use std::process::{Command, Child};
|
||||
use std::io;
|
||||
use std::path::Path;
|
||||
|
||||
fn input() -> Result<String, io::Error> {
|
||||
let mut val = String::new();
|
||||
io::stdin().read_line(&mut val)?;
|
||||
Ok(val)
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let config = Config::new();
|
||||
|
||||
if Path::new("default.conf").is_file() {
|
||||
let pac = read_default();
|
||||
let mut child = config.run(pac);
|
||||
child.wait().expect("Failed to wait on child");
|
||||
std::process::exit(0);
|
||||
}
|
||||
|
||||
let pacmatic = PackageManager::pacmatic();
|
||||
let pacman = PackageManager::pacman();
|
||||
let aptget = PackageManager::apt();
|
||||
let xbps = PackageManager::xbps();
|
||||
|
||||
|
||||
let managers: Vec<PackageManager> = vec![pacmatic, pacman, aptget, xbps];
|
||||
|
||||
let mut found: bool = false;
|
||||
for prog in managers {
|
||||
if found { break }
|
||||
if prog.exe.is_file() {
|
||||
println!("Found {}, is this the manager you want to use? [Y/n]", prog.name);
|
||||
if input().unwrap().trim().to_lowercase() == "n" {
|
||||
continue
|
||||
}else {
|
||||
found = true;
|
||||
println!("Would you like to set {} as default? [y/N]", prog.name);
|
||||
if input().unwrap().trim().to_lowercase() == "y" {
|
||||
let check = prog.set_default();
|
||||
match check {
|
||||
Ok(_) => println!("Default set"),
|
||||
Err(err) => println!("An error occured while setting default:\
|
||||
{}", err)
|
||||
}
|
||||
}
|
||||
|
||||
//let mut child = call(prog, &config.action, &config.term.clone().unwrap_or_else(|| "".to_string()));
|
||||
let mut child = config.run(prog);
|
||||
child.wait().expect("Failed to wait on child");
|
||||
}
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
println!("Sorry, your desired package manager is not supported at this time");
|
||||
std::process::exit(0);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user