create-platon-plugin 0.1.1

A quick way to scaffold a new Platon Plugin
extern crate fs_extra;
use clap::Parser;
use fs_extra::dir::create;
use include_dir::{Dir, include_dir};

static TEMPLATE_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR/template");

#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct Cli {
    /// The name of the plugin
    #[arg(long)]
    plugin_name: String,
    /// The port number in which the plugin will be running
    #[arg(long, default_value_t = 8080)]
    port: u16,
}

fn main() {
    let args = Cli::parse();

    let plugin_name = args.plugin_name;

    let port = args.port;

    println!(
        "Plugin: {:?} will be running on port: {:?}",
        plugin_name, port
    );

    let to = plugin_name;

    create(to.clone(), true).expect("Failed to create a folder");

    TEMPLATE_DIR
        .extract(to.clone())
        .expect("Failed to extract the template folder!");
}