Compare commits
6 Commits
v0.6.0
...
v0.6.2-pre
Author | SHA1 | Date | |
---|---|---|---|
6ef80be01f | |||
1a3c090612 | |||
fe7c8d2834 | |||
b3168b0a58 | |||
b1cffb44ad | |||
5414213a19 |
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -28,7 +28,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "alterware-launcher"
|
||||
version = "0.6.0"
|
||||
version = "0.6.2"
|
||||
dependencies = [
|
||||
"colored",
|
||||
"futures-util",
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "alterware-launcher"
|
||||
version = "0.6.0"
|
||||
version = "0.6.2"
|
||||
edition = "2021"
|
||||
build = "res/build.rs"
|
||||
|
||||
|
@ -227,6 +227,7 @@ async fn update_dir(
|
||||
"Checked".bright_blue(),
|
||||
misc::cute_path(&file_path)
|
||||
));
|
||||
hashes.insert(file_name.to_owned(), file.hash.to_lowercase());
|
||||
}
|
||||
} else {
|
||||
files_to_download.push(file.clone());
|
||||
@ -373,7 +374,6 @@ fn arg_remove_value(args: &mut Vec<String>, arg: &str) {
|
||||
async fn main() {
|
||||
#[cfg(windows)]
|
||||
setup_env();
|
||||
|
||||
let mut args: Vec<String> = env::args().collect();
|
||||
|
||||
if arg_bool(&args, "--help") {
|
||||
|
@ -13,7 +13,7 @@ pub fn self_update_available() -> bool {
|
||||
}
|
||||
|
||||
#[cfg(not(windows))]
|
||||
pub fn run(_update_only: bool) {
|
||||
pub fn run(_update_only: bool, _args: Vec<String>) {
|
||||
if self_update_available() {
|
||||
println!("A new version of the AlterWare launcher is available.");
|
||||
println!(
|
||||
@ -25,6 +25,19 @@ pub fn run(_update_only: bool) {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(windows)]
|
||||
pub fn restart() -> std::io::Error {
|
||||
use std::os::windows::process::CommandExt;
|
||||
match std::process::Command::new(std::env::current_exe().unwrap())
|
||||
.args(std::env::args().skip(1))
|
||||
.creation_flags(0x00000010) // CREATE_NEW_CONSOLE
|
||||
.spawn()
|
||||
{
|
||||
Ok(_) => std::process::exit(0),
|
||||
Err(err) => err,
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(windows)]
|
||||
pub fn run(update_only: bool) {
|
||||
use std::{fs, path::PathBuf};
|
||||
@ -43,7 +56,9 @@ pub fn run(update_only: bool) {
|
||||
&& (file_name.contains(".__relocated__.exe")
|
||||
|| file_name.contains(".__selfdelete__.exe"))
|
||||
{
|
||||
fs::remove_file(file.path()).unwrap();
|
||||
fs::remove_file(file.path()).unwrap_or_else(|_| {
|
||||
println!("Failed to remove old launcher file.");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,7 +81,7 @@ pub fn run(update_only: bool) {
|
||||
} else {
|
||||
"alterware-launcher.exe"
|
||||
};
|
||||
println!("{}", launcher_name);
|
||||
|
||||
http::download_file(
|
||||
&format!(
|
||||
"{}/download/{}",
|
||||
@ -83,12 +98,12 @@ pub fn run(update_only: bool) {
|
||||
|
||||
self_replace::self_replace("alterware-launcher-update.exe").unwrap();
|
||||
fs::remove_file(&file_path).unwrap();
|
||||
println!(
|
||||
"Launcher updated. View the changelog at https://github.com/{}/{}/releases/latest",
|
||||
GH_OWNER, GH_REPO,
|
||||
);
|
||||
println!("Please restart the launcher.");
|
||||
|
||||
// restarting spawns a new console, automation should manually restart on exit code 201
|
||||
if !update_only {
|
||||
let restart_error = restart().to_string();
|
||||
println!("Failed to restart launcher: {}", restart_error);
|
||||
println!("Please restart the launcher manually.");
|
||||
misc::stdin();
|
||||
}
|
||||
std::process::exit(201);
|
||||
|
Reference in New Issue
Block a user