Add ability to disable package managers (fix #206)
This commit is contained in:
@@ -24,6 +24,8 @@ type Commands = BTreeMap<String, String>;
|
|||||||
pub enum Step {
|
pub enum Step {
|
||||||
/// Don't perform system upgrade
|
/// Don't perform system upgrade
|
||||||
System,
|
System,
|
||||||
|
/// Don't perform upgrades of package managers
|
||||||
|
PackageManagers,
|
||||||
/// Don't pull git repositories
|
/// Don't pull git repositories
|
||||||
GitRepos,
|
GitRepos,
|
||||||
/// Don't upgrade Vim packages or configuration files
|
/// Don't upgrade Vim packages or configuration files
|
||||||
|
|||||||
77
src/main.rs
77
src/main.rs
@@ -176,39 +176,56 @@ fn run() -> Result<(), Error> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
execute(
|
{
|
||||||
&mut report,
|
if config.should_run(Step::PackageManagers) {
|
||||||
"Chocolatey",
|
execute(
|
||||||
|| windows::run_chocolatey(run_type),
|
&mut report,
|
||||||
config.no_retry(),
|
"Chocolatey",
|
||||||
)?;
|
|| windows::run_chocolatey(run_type),
|
||||||
|
config.no_retry(),
|
||||||
|
)?;
|
||||||
|
|
||||||
#[cfg(windows)]
|
execute(&mut report, "Scoop", || windows::run_scoop(run_type), config.no_retry())?;
|
||||||
execute(&mut report, "Scoop", || windows::run_scoop(run_type), config.no_retry())?;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
execute(
|
{
|
||||||
&mut report,
|
if config.should_run(Step::PackageManagers) {
|
||||||
"brew",
|
execute(
|
||||||
|| unix::run_homebrew(config.cleanup(), run_type),
|
&mut report,
|
||||||
config.no_retry(),
|
"brew",
|
||||||
)?;
|
|| unix::run_homebrew(config.cleanup(), run_type),
|
||||||
|
config.no_retry(),
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
|
||||||
|
execute(&mut report, "nix", || unix::run_nix(run_type), config.no_retry())?;
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "dragonfly")]
|
#[cfg(target_os = "dragonfly")]
|
||||||
execute(
|
{
|
||||||
&mut report,
|
if config.should_run(Step::PackageManagers) {
|
||||||
"DragonFly BSD Packages",
|
execute(
|
||||||
|| dragonfly::upgrade_packages(sudo.as_ref(), run_type),
|
&mut report,
|
||||||
config.no_retry(),
|
"DragonFly BSD Packages",
|
||||||
)?;
|
|| dragonfly::upgrade_packages(sudo.as_ref(), run_type),
|
||||||
|
config.no_retry(),
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "freebsd")]
|
#[cfg(target_os = "freebsd")]
|
||||||
execute(
|
{
|
||||||
&mut report,
|
if config.should_run(Step::PackageManagers) {
|
||||||
"FreeBSD Packages",
|
execute(
|
||||||
|| freebsd::upgrade_packages(sudo.as_ref(), run_type),
|
&mut report,
|
||||||
config.no_retry(),
|
"FreeBSD Packages",
|
||||||
)?;
|
|| freebsd::upgrade_packages(sudo.as_ref(), run_type),
|
||||||
#[cfg(unix)]
|
config.no_retry(),
|
||||||
execute(&mut report, "nix", || unix::run_nix(run_type), config.no_retry())?;
|
)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let emacs = emacs::Emacs::new(&base_dirs);
|
let emacs = emacs::Emacs::new(&base_dirs);
|
||||||
if config.should_run(Step::Emacs) {
|
if config.should_run(Step::Emacs) {
|
||||||
@@ -405,7 +422,7 @@ fn run() -> Result<(), Error> {
|
|||||||
|
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
{
|
{
|
||||||
if config.should_run(Step::System) {
|
if config.should_run(Step::PackageManagers) {
|
||||||
execute(
|
execute(
|
||||||
&mut report,
|
&mut report,
|
||||||
"Flatpak",
|
"Flatpak",
|
||||||
@@ -551,7 +568,7 @@ fn run() -> Result<(), Error> {
|
|||||||
if report.data().iter().all(|(_, succeeded)| *succeeded) {
|
if report.data().iter().all(|(_, succeeded)| *succeeded) {
|
||||||
Ok(())
|
Ok(())
|
||||||
} else {
|
} else {
|
||||||
Err(ErrorKind::StepFailed)?
|
Err(ErrorKind::StepFailed.into())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user