|
|
|
|
@@ -126,13 +126,13 @@ fn install_programs() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
|
|
|
|
|
|
|
for n in chosen.iter() {
|
|
|
|
|
if which("yay").is_some() {
|
|
|
|
|
Command::new("yay").arg("-S").arg(n).status()?;
|
|
|
|
|
Command::new("yay").arg("-S").arg("--noconfirm").arg(n).status()?;
|
|
|
|
|
} else if which("pacman").is_some() {
|
|
|
|
|
Command::new("sudo").arg("pacman").arg("-S").arg(n).status()?;
|
|
|
|
|
Command::new("sudo").arg("pacman").arg("-S").arg("--noconfirm").arg(n).status()?;
|
|
|
|
|
} else if which("dnf").is_some() {
|
|
|
|
|
Command::new("sudo").arg("dnf").arg("install").arg(n).status()?;
|
|
|
|
|
Command::new("sudo").arg("dnf").arg("install").arg("-y").arg(n).status()?;
|
|
|
|
|
} else if which("apt").is_some() {
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg(n).status()?;
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("-y").arg(n).status()?;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -166,14 +166,14 @@ fn install_flatpaks() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
|
|
} else {
|
|
|
|
|
match distro {
|
|
|
|
|
"arch" => {
|
|
|
|
|
Command::new("sudo").arg("pacman").arg("-S").arg("flatpak").status()?;
|
|
|
|
|
Command::new("sudo").arg("pacman").arg("-S").arg("--noconfirm").arg("flatpak").status()?;
|
|
|
|
|
}
|
|
|
|
|
"Debian" => {
|
|
|
|
|
Command::new("sudo").arg("apt").arg("update").status()?;
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("flatpak").status()?;
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("-y").arg("flatpak").status()?;
|
|
|
|
|
}
|
|
|
|
|
"fedora" => {
|
|
|
|
|
Command::new("sudo").arg("dnf").arg("install").arg("flatpak").status()?;
|
|
|
|
|
Command::new("sudo").arg("dnf").arg("install").arg("-y").arg("flatpak").status()?;
|
|
|
|
|
}
|
|
|
|
|
_ => eprint!("Unsupported distro")
|
|
|
|
|
};
|
|
|
|
|
@@ -220,17 +220,17 @@ fn update_system() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
|
|
match distro {
|
|
|
|
|
"arch" => {
|
|
|
|
|
if which("yay").is_some() {
|
|
|
|
|
Command::new("yay").status()?;
|
|
|
|
|
Command::new("yay").arg("--noconfirm").status()?;
|
|
|
|
|
} else {
|
|
|
|
|
Command::new("sudo").arg("pacman").arg("-Syu").status()?;
|
|
|
|
|
Command::new("sudo").arg("pacman").arg("-Syu").arg("--noconfirm").status()?;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
"Debian" => {
|
|
|
|
|
Command::new("sudo").arg("apt").arg("update").status()?;
|
|
|
|
|
Command::new("sudo").arg("apt").arg("upgrade").status()?;
|
|
|
|
|
Command::new("sudo").arg("apt").arg("upgrade").arg("-y").status()?;
|
|
|
|
|
}
|
|
|
|
|
"fedora" => {
|
|
|
|
|
Command::new("sudo").arg("dnf").arg("up").status()?;
|
|
|
|
|
Command::new("sudo").arg("dnf").arg("up").arg("-y").status()?;
|
|
|
|
|
}
|
|
|
|
|
_ => eprint!("Unsupported distro")
|
|
|
|
|
};
|
|
|
|
|
@@ -255,7 +255,7 @@ fn aur() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
|
|
eprint!("yay not found. Install yay Y/N? (1/0)");
|
|
|
|
|
let input = handle_int_input();
|
|
|
|
|
if input == 1 {
|
|
|
|
|
Command::new("sudo").arg("pacman").arg("-S").arg("git").arg("base-devel").status()?;
|
|
|
|
|
Command::new("sudo").arg("pacman").arg("-S").arg("--noconfirm").arg("git").arg("base-devel").status()?;
|
|
|
|
|
Command::new("git").arg("clone").arg("https://aur.archlinux.org/yay.git").status()?;
|
|
|
|
|
std::env::set_current_dir("yay")?;
|
|
|
|
|
Command::new("makepkg").arg("-si").status()?;
|
|
|
|
|
@@ -279,7 +279,7 @@ fn aur() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for i in chosen.iter() {
|
|
|
|
|
Command::new("yay").arg("-S").arg(i).status()?;
|
|
|
|
|
Command::new("yay").arg("-S").arg("--noconfirm").arg(i).status()?;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
@@ -377,8 +377,8 @@ fn handle_intel_driver(distro: &str) -> Result<(), Box<dyn Error>> {
|
|
|
|
|
return drivers();
|
|
|
|
|
}
|
|
|
|
|
match input_2 {
|
|
|
|
|
1 => Command::new("sudo").arg("pacman").arg("-S").arg("intel-media-driver").status()?,
|
|
|
|
|
2 => Command::new("sudo").arg("pacman").arg("-S").arg("libva-intel-driver").status()?,
|
|
|
|
|
1 => Command::new("sudo").arg("pacman").arg("-S").arg("--noconfirm").arg("intel-media-driver").status()?,
|
|
|
|
|
2 => Command::new("sudo").arg("pacman").arg("-S").arg("--noconfirm").arg("libva-intel-driver").status()?,
|
|
|
|
|
_ => {
|
|
|
|
|
eprintln!("Invalid choice");
|
|
|
|
|
return Ok(());
|
|
|
|
|
@@ -387,10 +387,10 @@ fn handle_intel_driver(distro: &str) -> Result<(), Box<dyn Error>> {
|
|
|
|
|
},
|
|
|
|
|
"Debian" => {
|
|
|
|
|
Command::new("sudo").arg("apt").arg("update").status()?;
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("intel-media-va-driver").status()
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("-y").arg("intel-media-va-driver").status()
|
|
|
|
|
}?,
|
|
|
|
|
"fedora" => {
|
|
|
|
|
Command::new("sudo").arg("dnf").arg("install").arg("intel-media-driver").status()?
|
|
|
|
|
Command::new("sudo").arg("dnf").arg("install").arg("-y").arg("intel-media-driver").status()?
|
|
|
|
|
},
|
|
|
|
|
_ => {
|
|
|
|
|
eprintln!("Invalid choice");
|
|
|
|
|
@@ -407,12 +407,12 @@ fn handle_amd_driver(distro: &str) -> Result<(), Box<dyn Error>> {
|
|
|
|
|
clear_terminal();
|
|
|
|
|
|
|
|
|
|
match distro {
|
|
|
|
|
"arch" => Command::new("sudo").arg("pacman").arg("-S").arg("mesa").status()?,
|
|
|
|
|
"arch" => Command::new("sudo").arg("pacman").arg("-S").arg("--noconfirm").arg("mesa").status()?,
|
|
|
|
|
"Debian" => {
|
|
|
|
|
Command::new("sudo").arg("apt").arg("update").status()?;
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("mesa-va-drivers").status()
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("-y").arg("mesa-va-drivers").status()
|
|
|
|
|
}?,
|
|
|
|
|
"fedora" => Command::new("sudo").arg("dnf").arg("install").arg("mesa-va-drivers").status()?,
|
|
|
|
|
"fedora" => Command::new("sudo").arg("dnf").arg("install").arg("-y").arg("mesa-va-drivers").status()?,
|
|
|
|
|
_ => {
|
|
|
|
|
eprintln!("Unsupported distro");
|
|
|
|
|
return Ok(())
|
|
|
|
|
@@ -428,12 +428,12 @@ fn handle_nvidia_driver(distro: &str) -> Result<(), Box<dyn Error>> {
|
|
|
|
|
clear_terminal();
|
|
|
|
|
|
|
|
|
|
match distro {
|
|
|
|
|
"arch" => Command::new("sudo").arg("pacman").arg("-S").arg("nvidia").status()?,
|
|
|
|
|
"arch" => Command::new("sudo").arg("pacman").arg("-S").arg("--noconfirm").arg("nvidia").status()?,
|
|
|
|
|
"Debian" => {
|
|
|
|
|
Command::new("sudo").arg("apt").arg("update").status()?;
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("nvidia-driver").status()
|
|
|
|
|
Command::new("sudo").arg("apt").arg("install").arg("-y").arg("nvidia-driver").status()
|
|
|
|
|
}?,
|
|
|
|
|
"fedora" => Command::new("sudo").arg("dnf").arg("install").arg("akmod-nvidia").status()?,
|
|
|
|
|
"fedora" => Command::new("sudo").arg("dnf").arg("install").arg("-y").arg("akmod-nvidia").status()?,
|
|
|
|
|
_ => {
|
|
|
|
|
eprintln!("Unsupported distro");
|
|
|
|
|
return Ok(())
|
|
|
|
|
|