use self_update::cargo_crate_version;
fn run() -> Result<(), Box<dyn ::std::error::Error>> {
let releases = self_update::backends::s3::ReleaseList::configure()
.bucket_name("my-releases")
.asset_prefix("myapp")
.region("us-east-1")
.build()?
.fetch()?;
println!("found releases:");
println!("{:#?}\n", releases);
let mut builder = self_update::backends::s3::Update::configure();
builder
.bucket_name("my-releases")
.asset_prefix("myapp")
.region("us-east-1")
.bin_name("myapp")
.show_download_progress(true)
.current_version(cargo_crate_version!());
#[cfg(feature = "s3-auth")]
{
let access_key_id = std::env::var("AWS_ACCESS_KEY_ID")?;
let secret_access_key = std::env::var("AWS_SECRET_ACCESS_KEY")?;
builder.access_key((access_key_id, secret_access_key));
}
let status = builder.build()?.update()?;
println!("Update status: `{}`!", status.version());
Ok(())
}
pub fn main() {
if let Err(e) = run() {
println!("[ERROR] {}", e);
::std::process::exit(1);
}
}