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,10 +201,10 @@ 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())?;
} }
if config.should_run(Step::Opam) {
execute( execute(
&mut report, &mut report,
"opam", "opam",
|| generic::run_opam_update(run_type), || generic::run_opam_update(run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
if config.should_run(Step::Vcpkg) {
execute( execute(
&mut report, &mut report,
"vcpkg", "vcpkg",
|| generic::run_vcpkg_update(run_type), || generic::run_vcpkg_update(run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
if config.should_run(Step::Pipx) {
execute( execute(
&mut report, &mut report,
"pipx", "pipx",
|| generic::run_pipx_update(run_type), || generic::run_pipx_update(run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
if config.should_run(Step::Stack) {
execute( execute(
&mut report, &mut report,
"stack", "stack",
|| generic::run_stack_update(run_type), || generic::run_stack_update(run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
if config.should_run(Step::Myrepos) {
execute( execute(
&mut report, &mut report,
"myrepos", "myrepos",
|| generic::run_myrepos_update(&base_dirs, run_type), || generic::run_myrepos_update(&base_dirs, run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
#[cfg(unix)] #[cfg(unix)]
{
if config.should_run(Step::Pearl) {
execute(&mut report, "pearl", || unix::run_pearl(run_type), config.no_retry())?; execute(&mut report, "pearl", || unix::run_pearl(run_type), config.no_retry())?;
}
}
if config.should_run(Step::Jetpack) {
execute( execute(
&mut report, &mut report,
"jetpak", "jetpak",
|| generic::run_jetpack(run_type), || generic::run_jetpack(run_type),
config.no_retry(), 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"
)))] )))]
{
if config.should_run(Step::Atom) {
execute(&mut report, "apm", || generic::run_apm(run_type), config.no_retry())?; 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,6 +498,7 @@ fn run() -> Result<(), Error> {
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
{ {
if config.should_run(Step::System) {
execute( execute(
&mut report, &mut report,
"pihole", "pihole",
@@ -484,12 +511,18 @@ fn run() -> Result<(), Error> {
|| linux::run_rpi_update(sudo.as_ref(), run_type), || linux::run_rpi_update(sudo.as_ref(), run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
if config.should_run(Step::Firmware) {
execute( execute(
&mut report, &mut report,
"Firmware upgrades", "Firmware upgrades",
|| linux::run_fwupdmgr(run_type), || linux::run_fwupdmgr(run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
if config.should_run(Step::Restarts) {
execute( execute(
&mut report, &mut report,
"Restarts", "Restarts",
@@ -497,6 +530,7 @@ fn run() -> Result<(), Error> {
config.no_retry(), config.no_retry(),
)?; )?;
} }
}
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
{ {