use super::TemplateMetadata;
use crate::commands::new::{GlobalFlags, plugin_scaffold};
use clap::Args as ClapArgs;
use influxdb3_plugin_schemas::TriggerType;
use std::path::PathBuf;
pub(crate) const METADATA: TemplateMetadata = TemplateMetadata {
name: "Process Writes Plugin",
short_name: "process_writes",
description: "Plugin triggered by rows written to a database.",
};
#[derive(Debug, ClapArgs)]
#[command(override_usage = "influxdb3-plugin new process_writes [OPTIONS] [PATH]")]
pub(crate) struct Args {
#[command(flatten)]
pub global: GlobalFlags,
#[arg(default_value = ".")]
pub path: PathBuf,
#[arg(long)]
pub name: Option<String>,
#[arg(long)]
pub database_version: Option<String>,
}
pub(crate) fn run(args: Args) -> anyhow::Result<()> {
plugin_scaffold(
&METADATA,
TriggerType::ProcessWrites,
args.global,
args.path,
args.name,
args.database_version,
)
}