adds --api argument to leo binary

This commit is contained in:
@damndam 2021-04-17 18:12:25 +03:00
parent 4eac040178
commit 6e68444e59
3 changed files with 14 additions and 7 deletions

View File

@ -100,7 +100,7 @@ impl Api {
}; };
// only one error is possible here // only one error is possible here
let res = res.send().map_err(|_| anyhow!("Unable to connect to Aleo PM"))?; let res = res.send().map_err(|_| anyhow!("Unable to connect to Aleo PM. Check URL if you specified custom API endpoint"))?;
// where magic begins // where magic begins
route.process(res) route.process(res)

View File

@ -48,19 +48,19 @@ impl Context {
} }
/// Create a new context for the current directory. /// Create a new context for the current directory.
pub fn create_context(path: PathBuf) -> Result<Context> { pub fn create_context(path: PathBuf, api_url: Option<String>) -> Result<Context> {
let token = config::read_token().ok(); let token = config::read_token().ok();
let api = Api::new(PACKAGE_MANAGER_URL.to_string(), token); let api = Api::new(api_url.unwrap_or(PACKAGE_MANAGER_URL.to_string()), token);
Ok(Context { api, path: Some(path) }) Ok(Context { api, path: Some(path) })
} }
/// Returns project context. /// Returns project context.
pub fn get_context() -> Result<Context> { pub fn get_context(api_url: Option<String>) -> Result<Context> {
let token = config::read_token().ok(); let token = config::read_token().ok();
let api = Api::new(PACKAGE_MANAGER_URL.to_string(), token); let api = Api::new(api_url.unwrap_or(PACKAGE_MANAGER_URL.to_string()), token);
Ok(Context { api, path: None }) Ok(Context { api, path: None })
} }

View File

@ -55,6 +55,13 @@ struct Opt {
#[structopt(subcommand)] #[structopt(subcommand)]
command: CommandOpts, command: CommandOpts,
#[structopt(
long,
global = true,
help = "Aleo PM API Url"
)]
api: Option<String>,
#[structopt( #[structopt(
long, long,
global = true, global = true,
@ -192,8 +199,8 @@ fn main() {
// Get custom root folder and create context for it. // Get custom root folder and create context for it.
// If not specified, default context will be created in cwd. // If not specified, default context will be created in cwd.
let context = handle_error(match opt.path { let context = handle_error(match opt.path {
Some(path) => context::create_context(path), Some(path) => context::create_context(path, opt.api),
None => context::get_context(), None => context::get_context(opt.api),
}); });
handle_error(match opt.command { handle_error(match opt.command {