openfare_lib/extension/commands/
project_dependencies_locks.rs1use super::common;
2use crate::extension::common::Extension;
3use anyhow::Result;
4use structopt::{self, StructOpt};
5
6pub const COMMAND_NAME: &str = "project-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 #[structopt(name = "working-directory", long)]
18 pub working_directory: String,
19
20 #[structopt(name = "extension-args", long)]
21 pub extension_args: Vec<String>,
22}
23
24pub fn run_command<T: Extension + std::fmt::Debug>(args: &Arguments, extension: &T) -> Result<()> {
25 let working_directory = std::path::PathBuf::from(&args.working_directory);
26 let result = extension.project_dependencies_locks(&working_directory, &args.extension_args);
27 common::communicate_result(result)?;
28 Ok(())
29}
30
31#[derive(Clone, Debug, Default, serde::Serialize, serde::Deserialize)]
32pub struct ProjectDependenciesLocks {
33 pub project_path: std::path::PathBuf,
34 pub package_locks: crate::package::PackageLocks,
35}