openfare_lib/extension/commands/
package_dependencies_locks.rs

1use super::common;
2use crate::extension::common::Extension;
3use anyhow::Result;
4use structopt::{self, StructOpt};
5
6pub const COMMAND_NAME: &str = "package-dependencies-locks";
7
8#[derive(Debug, StructOpt, Clone)]
9#[structopt(
10    name = "no_version",
11    no_version,
12    global_settings = &[structopt::clap::AppSettings::DisableVersion]
13)]
14#[structopt(global_setting = structopt::clap::AppSettings::TrailingVarArg)]
15pub struct Arguments {
16    /// Package name.
17    #[structopt(name = "package-name", long)]
18    pub package_name: String,
19
20    /// Package version.
21    #[structopt(name = "package-version", long)]
22    pub package_version: Option<String>,
23
24    #[structopt(name = "extension-args", long)]
25    pub extension_args: Vec<String>,
26}
27
28pub fn run_command<T: Extension + std::fmt::Debug>(args: &Arguments, extension: &T) -> Result<()> {
29    let result = extension.package_dependencies_locks(
30        &args.package_name,
31        &args.package_version.as_deref(),
32        &args.extension_args,
33    );
34    common::communicate_result(result)?;
35    Ok(())
36}
37
38#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
39pub struct PackageDependenciesLocks {
40    pub registry_host_name: String,
41    pub package_locks: crate::package::PackageLocks,
42}