solana-install-init: --pubkey is no longer required on platforms without a default update manifest
This commit is contained in:
parent
f192e4f08f
commit
142601d4b6
|
@ -73,15 +73,6 @@ echo --- Creating release tarball
|
||||||
source ci/rust-version.sh stable
|
source ci/rust-version.sh stable
|
||||||
scripts/cargo-install-all.sh +"$rust_stable" --use-move solana-release
|
scripts/cargo-install-all.sh +"$rust_stable" --use-move solana-release
|
||||||
|
|
||||||
# Reduce the Windows archive size until
|
|
||||||
# https://github.com/appveyor/ci/issues/2997 is fixed
|
|
||||||
if [[ -n $APPVEYOR ]]; then
|
|
||||||
rm -f \
|
|
||||||
solana-release/bin/solana-validator.exe \
|
|
||||||
solana-release/bin/solana-bench-exchange.exe \
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
tar cvf solana-release-$TARGET.tar solana-release
|
tar cvf solana-release-$TARGET.tar solana-release
|
||||||
bzip2 solana-release-$TARGET.tar
|
bzip2 solana-release-$TARGET.tar
|
||||||
cp solana-release/bin/solana-install-init solana-install-init-$TARGET
|
cp solana-release/bin/solana-install-init solana-install-init-$TARGET
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
extern crate lazy_static;
|
extern crate lazy_static;
|
||||||
|
|
||||||
use clap::{crate_description, crate_name, App, AppSettings, Arg, ArgMatches, SubCommand};
|
use clap::{crate_description, crate_name, App, AppSettings, Arg, ArgMatches, SubCommand};
|
||||||
use solana_clap_utils::input_validators::{is_pubkey, is_url};
|
use solana_clap_utils::{
|
||||||
use solana_sdk::pubkey::Pubkey;
|
input_parsers::pubkey_of,
|
||||||
|
input_validators::{is_pubkey, is_url},
|
||||||
|
};
|
||||||
|
|
||||||
mod build_env;
|
mod build_env;
|
||||||
mod command;
|
mod command;
|
||||||
|
@ -53,6 +55,30 @@ pub fn explicit_release_of(
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_init(matches: &ArgMatches<'_>, config_file: &str) -> Result<(), String> {
|
||||||
|
let json_rpc_url = matches.value_of("json_rpc_url").unwrap();
|
||||||
|
let update_manifest_pubkey = pubkey_of(&matches, "update_manifest_pubkey");
|
||||||
|
let data_dir = matches.value_of("data_dir").unwrap();
|
||||||
|
let no_modify_path = matches.is_present("no_modify_path");
|
||||||
|
let explicit_release = explicit_release_of(&matches, "explicit_release");
|
||||||
|
|
||||||
|
if update_manifest_pubkey.is_none() && explicit_release.is_none() {
|
||||||
|
Err(format!(
|
||||||
|
"Please specify the release to install for {}. See --help for more",
|
||||||
|
build_env::TARGET
|
||||||
|
))
|
||||||
|
} else {
|
||||||
|
command::init(
|
||||||
|
config_file,
|
||||||
|
data_dir,
|
||||||
|
json_rpc_url,
|
||||||
|
&update_manifest_pubkey.unwrap_or_default(),
|
||||||
|
no_modify_path,
|
||||||
|
explicit_release,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn main() -> Result<(), String> {
|
pub fn main() -> Result<(), String> {
|
||||||
solana_logger::setup();
|
solana_logger::setup();
|
||||||
|
|
||||||
|
@ -111,7 +137,6 @@ pub fn main() -> Result<(), String> {
|
||||||
.long("pubkey")
|
.long("pubkey")
|
||||||
.value_name("PUBKEY")
|
.value_name("PUBKEY")
|
||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.required(true)
|
|
||||||
.validator(is_pubkey)
|
.validator(is_pubkey)
|
||||||
.help("Public key of the update manifest");
|
.help("Public key of the update manifest");
|
||||||
|
|
||||||
|
@ -126,7 +151,7 @@ pub fn main() -> Result<(), String> {
|
||||||
.index(1)
|
.index(1)
|
||||||
.conflicts_with_all(&["json_rpc_url", "update_manifest_pubkey"])
|
.conflicts_with_all(&["json_rpc_url", "update_manifest_pubkey"])
|
||||||
.validator(is_explicit_release)
|
.validator(is_explicit_release)
|
||||||
.help("The exact version to install. Either a semver or release channel name"),
|
.help("The release version or channel to install"),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.subcommand(
|
.subcommand(
|
||||||
|
@ -211,26 +236,7 @@ pub fn main() -> Result<(), String> {
|
||||||
let config_file = matches.value_of("config_file").unwrap();
|
let config_file = matches.value_of("config_file").unwrap();
|
||||||
|
|
||||||
match matches.subcommand() {
|
match matches.subcommand() {
|
||||||
("init", Some(matches)) => {
|
("init", Some(matches)) => handle_init(&matches, &config_file),
|
||||||
let json_rpc_url = matches.value_of("json_rpc_url").unwrap();
|
|
||||||
let update_manifest_pubkey = matches
|
|
||||||
.value_of("update_manifest_pubkey")
|
|
||||||
.unwrap()
|
|
||||||
.parse::<Pubkey>()
|
|
||||||
.unwrap();
|
|
||||||
let data_dir = matches.value_of("data_dir").unwrap();
|
|
||||||
let no_modify_path = matches.is_present("no_modify_path");
|
|
||||||
let explicit_release = explicit_release_of(&matches, "explicit_release");
|
|
||||||
|
|
||||||
command::init(
|
|
||||||
config_file,
|
|
||||||
data_dir,
|
|
||||||
json_rpc_url,
|
|
||||||
&update_manifest_pubkey,
|
|
||||||
no_modify_path,
|
|
||||||
explicit_release,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
("info", Some(matches)) => {
|
("info", Some(matches)) => {
|
||||||
let local_info_only = matches.is_present("local_info_only");
|
let local_info_only = matches.is_present("local_info_only");
|
||||||
command::info(config_file, local_info_only).map(|_| ())
|
command::info(config_file, local_info_only).map(|_| ())
|
||||||
|
@ -314,7 +320,6 @@ pub fn main_init() -> Result<(), String> {
|
||||||
.long("pubkey")
|
.long("pubkey")
|
||||||
.value_name("PUBKEY")
|
.value_name("PUBKEY")
|
||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.required(true)
|
|
||||||
.validator(is_pubkey)
|
.validator(is_pubkey)
|
||||||
.help("Public key of the update manifest");
|
.help("Public key of the update manifest");
|
||||||
|
|
||||||
|
@ -329,28 +334,10 @@ pub fn main_init() -> Result<(), String> {
|
||||||
.index(1)
|
.index(1)
|
||||||
.conflicts_with_all(&["json_rpc_url", "update_manifest_pubkey"])
|
.conflicts_with_all(&["json_rpc_url", "update_manifest_pubkey"])
|
||||||
.validator(is_explicit_release)
|
.validator(is_explicit_release)
|
||||||
.help("The exact version to install. Updates will not be available if this argument is used"),
|
.help("The release version or channel to install"),
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
let config_file = matches.value_of("config_file").unwrap();
|
let config_file = matches.value_of("config_file").unwrap();
|
||||||
|
handle_init(&matches, &config_file)
|
||||||
let json_rpc_url = matches.value_of("json_rpc_url").unwrap();
|
|
||||||
let update_manifest_pubkey = matches
|
|
||||||
.value_of("update_manifest_pubkey")
|
|
||||||
.unwrap()
|
|
||||||
.parse::<Pubkey>()
|
|
||||||
.unwrap();
|
|
||||||
let data_dir = matches.value_of("data_dir").unwrap();
|
|
||||||
let no_modify_path = matches.is_present("no_modify_path");
|
|
||||||
let explicit_release = explicit_release_of(&matches, "explicit_release");
|
|
||||||
|
|
||||||
command::init(
|
|
||||||
config_file,
|
|
||||||
data_dir,
|
|
||||||
json_rpc_url,
|
|
||||||
&update_manifest_pubkey,
|
|
||||||
no_modify_path,
|
|
||||||
explicit_release,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue