Upgrade commands

This commit is contained in:
Jędrzej Stuczyński
2021-05-24 11:52:31 +01:00
parent 2f29ee49db
commit d9087bf2a9
4 changed files with 105 additions and 0 deletions
+27
View File
@@ -227,6 +227,32 @@ fn minor_010_upgrade(
config
}
// no changes but version number
fn patch_010_upgrade(
mut config: Config,
_matches: &ArgMatches,
config_version: &Version,
package_version: &Version,
) -> Config {
let to_version = package_version;
print_start_upgrade(&config_version, &to_version);
config
.get_base_mut()
.set_custom_version(to_version.to_string().as_ref());
config.save_to_file(None).unwrap_or_else(|err| {
eprintln!("failed to overwrite config file! - {:?}", err);
print_failed_upgrade(&config_version, &to_version);
process::exit(1);
});
print_successful_upgrade(config_version, to_version);
config
}
fn do_upgrade(mut config: Config, matches: &ArgMatches, package_version: Version) {
loop {
let config_version = parse_config_version(&config);
@@ -239,6 +265,7 @@ fn do_upgrade(mut config: Config, matches: &ArgMatches, package_version: Version
config = match config_version.major {
0 => match config_version.minor {
9 => minor_010_upgrade(config, &matches, &config_version, &package_version),
10 => patch_010_upgrade(config, &matches, &config_version, &package_version),
_ => unsupported_upgrade(config_version, package_version),
},
_ => unsupported_upgrade(config_version, package_version),
+27
View File
@@ -227,6 +227,32 @@ fn minor_010_upgrade(
config
}
// no changes but version number
fn patch_010_upgrade(
mut config: Config,
_matches: &ArgMatches,
config_version: &Version,
package_version: &Version,
) -> Config {
let to_version = package_version;
print_start_upgrade(&config_version, &to_version);
config
.get_base_mut()
.set_custom_version(to_version.to_string().as_ref());
config.save_to_file(None).unwrap_or_else(|err| {
eprintln!("failed to overwrite config file! - {:?}", err);
print_failed_upgrade(&config_version, &to_version);
process::exit(1);
});
print_successful_upgrade(config_version, to_version);
config
}
fn do_upgrade(mut config: Config, matches: &ArgMatches, package_version: Version) {
loop {
let config_version = parse_config_version(&config);
@@ -239,6 +265,7 @@ fn do_upgrade(mut config: Config, matches: &ArgMatches, package_version: Version
config = match config_version.major {
0 => match config_version.minor {
9 => minor_010_upgrade(config, &matches, &config_version, &package_version),
10 => patch_010_upgrade(config, &matches, &config_version, &package_version),
_ => unsupported_upgrade(config_version, package_version),
},
_ => unsupported_upgrade(config_version, package_version),
+25
View File
@@ -199,6 +199,30 @@ fn minor_010_upgrade(
upgraded_config
}
// no changes but version number
fn patch_010_upgrade(
config: Config,
_matches: &ArgMatches,
config_version: &Version,
package_version: &Version,
) -> Config {
let to_version = package_version;
print_start_upgrade(&config_version, &to_version);
let upgraded_config = config.with_custom_version(to_version.to_string().as_ref());
upgraded_config.save_to_file(None).unwrap_or_else(|err| {
eprintln!("failed to overwrite config file! - {:?}", err);
print_failed_upgrade(&config_version, &to_version);
process::exit(1);
});
print_successful_upgrade(config_version, to_version);
upgraded_config
}
fn do_upgrade(mut config: Config, matches: &ArgMatches, package_version: Version) {
loop {
let config_version = parse_config_version(&config);
@@ -211,6 +235,7 @@ fn do_upgrade(mut config: Config, matches: &ArgMatches, package_version: Version
config = match config_version.major {
0 => match config_version.minor {
9 => minor_010_upgrade(config, &matches, &config_version, &package_version),
10 => patch_010_upgrade(config, &matches, &config_version, &package_version),
_ => unsupported_upgrade(config_version, package_version),
},
_ => unsupported_upgrade(config_version, package_version),
+26
View File
@@ -238,6 +238,31 @@ fn minor_010_upgrade(
upgraded_config
}
fn patch_010_upgrade(
config: Config,
_matches: &ArgMatches,
config_version: &Version,
package_version: &Version,
) -> Config {
// welp, stuff like ports are mostly hardcoded and not part of the config so all is changes is just the version
// number
let to_version = package_version;
print_start_upgrade(&config_version, &to_version);
let upgraded_config = config.with_custom_version(to_version.to_string().as_ref());
upgraded_config.save_to_file(None).unwrap_or_else(|err| {
eprintln!("failed to overwrite config file! - {:?}", err);
print_failed_upgrade(&config_version, &to_version);
process::exit(1);
});
print_successful_upgrade(config_version, to_version);
upgraded_config
}
fn do_upgrade(mut config: Config, matches: &ArgMatches, package_version: Version) {
loop {
let config_version = parse_config_version(&config);
@@ -250,6 +275,7 @@ fn do_upgrade(mut config: Config, matches: &ArgMatches, package_version: Version
config = match config_version.major {
0 => match config_version.minor {
9 => minor_010_upgrade(config, &matches, &config_version, &package_version),
10 => patch_010_upgrade(config, &matches, &config_version, &package_version),
_ => unsupported_upgrade(config_version, package_version),
},
_ => unsupported_upgrade(config_version, package_version),