Skip to content

Commit

Permalink
feat(cli): Allow building without self-update feature
Browse files Browse the repository at this point in the history
  • Loading branch information
jirutka committed Dec 31, 2023
1 parent 4f8120e commit 1d28d9b
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 6 deletions.
7 changes: 4 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,10 @@ description = { workspace = true }
members = ["crates/rustic_testing", "xtask"]

[features]
default = []
default = ["self-update"]
mimalloc = ["dep:mimalloc"]
jemallocator = ["dep:jemallocator-global"]
self-update = ["dep:self_update", "dep:semver"]

[[bin]]
name = "rustic"
Expand Down Expand Up @@ -67,8 +68,8 @@ serde_with = { workspace = true }

# other dependencies
chrono = { workspace = true }
self_update = { workspace = true }
semver = { workspace = true }
self_update = { workspace = true, optional = true }
semver = { workspace = true, optional = true }

# commands
clap = { workspace = true }
Expand Down
1 change: 1 addition & 0 deletions src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ enum RusticCmd {
ShowConfig(ShowConfigCmd),

/// Update to the latest rustic release
#[cfg_attr(not(feature = "self-update"), clap(hide = true))]
SelfUpdate(SelfUpdateCmd),

/// Remove unused data or repack repository pack files
Expand Down
13 changes: 10 additions & 3 deletions src/commands/self_update.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ use crate::{Application, RUSTIC_APP};
use abscissa_core::{status_err, Command, Runnable, Shutdown};

use anyhow::Result;
use self_update::cargo_crate_version;
use semver::Version;

/// `self-update` subcommand
#[derive(clap::Parser, Command, Debug)]
Expand All @@ -26,8 +24,11 @@ impl Runnable for SelfUpdateCmd {
}

impl SelfUpdateCmd {
#[cfg(feature = "self-update")]
fn inner_run(&self) -> Result<()> {
let current_version = Version::parse(cargo_crate_version!())?;
use semver::Version;

let current_version = Version::parse(self_update::cargo_crate_version!())?;

let release = self_update::backends::github::Update::configure()
.repo_owner("rustic-rs")
Expand Down Expand Up @@ -62,4 +63,10 @@ impl SelfUpdateCmd {

Ok(())
}
#[cfg(not(feature = "self-update"))]
fn inner_run(&self) -> Result<()> {
anyhow::bail!(
"This version of rustic was built without the \"self-update\" feature. Please use your system package manager to update it."
);
}
}

0 comments on commit 1d28d9b

Please sign in to comment.