Make every step configureable (fix #244) (#248)

* Make every step configureable (fix #244)

* Fix
This commit is contained in:
Roey Darwish Dror
2019-11-04 23:04:35 +02:00
committed by GitHub
parent 1182675170
commit 6021a551ac
2 changed files with 108 additions and 76 deletions

View File

@@ -22,30 +22,28 @@ type Commands = BTreeMap<String, String>;
#[serde(rename_all = "lowercase")] #[serde(rename_all = "lowercase")]
#[strum(serialize_all = "snake_case")] #[strum(serialize_all = "snake_case")]
pub enum Step { pub enum Step {
/// Don't perform system upgrade
System, System,
/// Don't perform upgrades of package managers
PackageManagers, PackageManagers,
/// Don't pull git repositories
GitRepos, GitRepos,
/// Don't upgrade Vim packages or configuration files
Vim, Vim,
/// Don't upgrade Emacs packages or configuration files
Emacs, Emacs,
/// Don't upgrade ruby gems
Gem, Gem,
/// Don't upgrade npm/composer/yarn packages
Node, Node,
/// Don't upgrade SDKMAN! and its packages
Sdkman, Sdkman,
/// Don't run remote Togprades
Remotes, Remotes,
/// Don't run Rustup
Rustup, Rustup,
/// Don't run Cargo
Cargo, Cargo,
/// Don't update Powershell modules
Shell, Shell,
Opam,
Vcpkg,
Pipx,
Stack,
Myrepos,
Pearl,
Jetpack,
Atom,
Firmware,
Restarts,
} }
#[derive(Deserialize, Default, Debug)] #[derive(Deserialize, Default, Debug)]

View File

@@ -201,9 +201,9 @@ fn run() -> Result<(), Error> {
|| unix::run_homebrew(config.cleanup(), run_type), || unix::run_homebrew(config.cleanup(), run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
execute(&mut report, "nix", || unix::run_nix(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")]
@@ -343,44 +343,66 @@ fn run() -> Result<(), Error> {
execute(&mut report, "Emacs", || emacs.upgrade(run_type), config.no_retry())?; execute(&mut report, "Emacs", || emacs.upgrade(run_type), config.no_retry())?;
} }
execute( if config.should_run(Step::Opam) {
&mut report, execute(
"opam", &mut report,
|| generic::run_opam_update(run_type), "opam",
config.no_retry(), || generic::run_opam_update(run_type),
)?; config.no_retry(),
execute( )?;
&mut report, }
"vcpkg",
|| generic::run_vcpkg_update(run_type), if config.should_run(Step::Vcpkg) {
config.no_retry(), execute(
)?; &mut report,
execute( "vcpkg",
&mut report, || generic::run_vcpkg_update(run_type),
"pipx", config.no_retry(),
|| generic::run_pipx_update(run_type), )?;
config.no_retry(), }
)?;
execute( if config.should_run(Step::Pipx) {
&mut report, execute(
"stack", &mut report,
|| generic::run_stack_update(run_type), "pipx",
config.no_retry(), || generic::run_pipx_update(run_type),
)?; config.no_retry(),
execute( )?;
&mut report, }
"myrepos",
|| generic::run_myrepos_update(&base_dirs, run_type), if config.should_run(Step::Stack) {
config.no_retry(), execute(
)?; &mut report,
"stack",
|| generic::run_stack_update(run_type),
config.no_retry(),
)?;
}
if config.should_run(Step::Myrepos) {
execute(
&mut report,
"myrepos",
|| generic::run_myrepos_update(&base_dirs, run_type),
config.no_retry(),
)?;
}
#[cfg(unix)] #[cfg(unix)]
execute(&mut report, "pearl", || unix::run_pearl(run_type), config.no_retry())?; {
execute( if config.should_run(Step::Pearl) {
&mut report, execute(&mut report, "pearl", || unix::run_pearl(run_type), config.no_retry())?;
"jetpak", }
|| generic::run_jetpack(run_type), }
config.no_retry(),
)?; if config.should_run(Step::Jetpack) {
execute(
&mut report,
"jetpak",
|| generic::run_jetpack(run_type),
config.no_retry(),
)?;
}
if config.should_run(Step::Vim) { if config.should_run(Step::Vim) {
execute( execute(
@@ -430,7 +452,11 @@ fn run() -> Result<(), Error> {
target_os = "netbsd", target_os = "netbsd",
target_os = "dragonfly" target_os = "dragonfly"
)))] )))]
execute(&mut report, "apm", || generic::run_apm(run_type), config.no_retry())?; {
if config.should_run(Step::Atom) {
execute(&mut report, "apm", || generic::run_apm(run_type), config.no_retry())?;
}
}
if config.should_run(Step::Gem) { if config.should_run(Step::Gem) {
execute( execute(
@@ -472,30 +498,38 @@ fn run() -> Result<(), Error> {
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
{ {
execute( if config.should_run(Step::System) {
&mut report, execute(
"pihole", &mut report,
|| linux::run_pihole_update(sudo.as_ref(), run_type), "pihole",
config.no_retry(), || linux::run_pihole_update(sudo.as_ref(), run_type),
)?; config.no_retry(),
execute( )?;
&mut report, execute(
"rpi-update", &mut report,
|| linux::run_rpi_update(sudo.as_ref(), run_type), "rpi-update",
config.no_retry(), || linux::run_rpi_update(sudo.as_ref(), run_type),
)?; config.no_retry(),
execute( )?;
&mut report, }
"Firmware upgrades",
|| linux::run_fwupdmgr(run_type), if config.should_run(Step::Firmware) {
config.no_retry(), execute(
)?; &mut report,
execute( "Firmware upgrades",
&mut report, || linux::run_fwupdmgr(run_type),
"Restarts", config.no_retry(),
|| linux::run_needrestart(sudo.as_ref(), run_type), )?;
config.no_retry(), }
)?;
if config.should_run(Step::Restarts) {
execute(
&mut report,
"Restarts",
|| linux::run_needrestart(sudo.as_ref(), run_type),
config.no_retry(),
)?;
}
} }
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]