use crate::ops::forc_update;
use clap::Parser;
use forc_pkg::source::IPFSNode;
use forc_util::ForcResult;
forc_util::cli_examples! {
crate::cli::Opt {
[Update dependencies => "forc update"]
[Update a specific dependency => "forc update -d std"]
[Check if dependencies have newer versions => "forc update --check"]
}
}
#[derive(Debug, Default, Parser)]
#[clap(bin_name = "forc update", version, after_help = help())]
pub struct Command {
#[clap(short, long)]
pub path: Option<String>,
#[clap(short = 'd')]
pub target_dependency: Option<String>,
#[clap(short, long)]
pub check: bool,
#[clap(long)]
pub ipfs_node: Option<IPFSNode>,
}
pub(crate) fn exec(command: Command) -> ForcResult<()> {
match forc_update::update(command) {
Ok(_) => Ok(()),
Err(e) => Err(format!("couldn't update dependencies: {}", e)
.as_str()
.into()),
}
}