diff --git a/cli/src/main.rs b/cli/src/main.rs index b6f57603e..367006b2d 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -94,6 +94,8 @@ pub enum Command { url: Option, #[clap(short, long)] keypair: Option, + #[clap(short, long)] + program_name: Option, }, /// Runs the deploy migration script. Migrate { @@ -110,6 +112,8 @@ pub enum Command { /// this should almost always be set. #[clap(short, long)] verifiable: bool, + #[clap(short, long)] + program_name: Option, }, /// Upgrades a single program. The configured wallet must be the upgrade /// authority. @@ -218,7 +222,11 @@ fn main() -> Result<()> { Command::New { name } => new(name), Command::Build { idl, verifiable } => build(idl, verifiable), Command::Verify { program_id } => verify(program_id), - Command::Deploy { url, keypair } => deploy(url, keypair), + Command::Deploy { + url, + keypair, + program_name, + } => deploy(url, keypair, program_name), Command::Upgrade { program_id, program_filepath, @@ -229,7 +237,8 @@ fn main() -> Result<()> { url, keypair, verifiable, - } => launch(url, keypair, verifiable), + program_name, + } => launch(url, keypair, verifiable, program_name), Command::Test { skip_deploy, skip_local_validator, @@ -936,7 +945,7 @@ fn test( _ => { if !skip_deploy { build(None, false)?; - deploy(None, None)?; + deploy(None, None, None)?; } None } @@ -1151,11 +1160,19 @@ fn start_test_validator(cfg: &Config, flags: Option>) -> Result, keypair: Option) -> Result<()> { - _deploy(url, keypair).map(|_| ()) +fn deploy( + url: Option, + keypair: Option, + program_name: Option, +) -> Result<()> { + _deploy(url, keypair, program_name).map(|_| ()) } -fn _deploy(url: Option, keypair: Option) -> Result> { +fn _deploy( + url: Option, + keypair: Option, + program_str: Option, +) -> Result> { with_workspace(|cfg, _path, _cargo| { // Fallback to config vars if not provided via CLI. let url = url.unwrap_or_else(|| cfg.cluster.url().to_string()); @@ -1168,9 +1185,19 @@ fn _deploy(url: Option, keypair: Option) -> Result Result<()> { }) } -fn launch(url: Option, keypair: Option, verifiable: bool) -> Result<()> { +fn launch( + url: Option, + keypair: Option, + verifiable: bool, + program_name: Option, +) -> Result<()> { // Build and deploy. build(None, verifiable)?; - let programs = _deploy(url.clone(), keypair.clone())?; + let programs = _deploy(url.clone(), keypair.clone(), program_name.clone())?; with_workspace(|cfg, _path, _cargo| { let url = url.unwrap_or_else(|| cfg.cluster.url().to_string());