influxdb3-plugin-cli 0.5.0

InfluxDB 3 author-side CLI for templating, validating, and packaging InfluxDB 3 plugins.
Documentation
//! `process_scheduled_call` template — plugin triggered on a schedule.

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: "Scheduled Call Plugin",
    short_name: "process_scheduled_call",
    description: "Plugin triggered on a schedule.",
};

#[derive(Debug, ClapArgs)]
#[command(override_usage = "influxdb3-plugin new process_scheduled_call [OPTIONS] [PATH]")]
pub(crate) struct Args {
    #[command(flatten)]
    pub global: GlobalFlags,

    /// Target directory. Created if missing. Defaults to `.`.
    #[arg(default_value = ".")]
    pub path: PathBuf,

    /// Plugin name written into `manifest.toml`. Defaults to the basename
    /// of `[path]`.
    #[arg(long)]
    pub name: Option<String>,

    /// SemVer range for `dependencies.database_version`.
    #[arg(long)]
    pub database_version: Option<String>,
}

pub(crate) fn run(args: Args) -> anyhow::Result<()> {
    plugin_scaffold(
        &METADATA,
        TriggerType::ProcessScheduledCall,
        args.global,
        args.path,
        args.name,
        args.database_version,
    )
}