#![forbid(unsafe_code)]
use super::SshAuthArgs;
use clap::{ArgAction, Subcommand};
#[derive(Debug, Subcommand)]
pub enum SftpAction {
Upload {
#[arg(long, action = ArgAction::SetTrue, conflicts_with = "hosts")]
all: bool,
#[arg(long, value_name = "LIST", conflicts_with = "all")]
hosts: Option<String>,
#[arg(required = true, num_args = 2.., value_names = ["VPS", "LOCAL", "REMOTE"])]
target: Vec<String>,
#[arg(short = 'r', long, action = ArgAction::SetTrue)]
recursive: bool,
#[command(flatten)]
auth: SshAuthArgs,
#[arg(long, value_name = "MS")]
timeout: Option<u64>,
#[arg(from_global)]
json: bool,
},
Download {
#[arg(long, action = ArgAction::SetTrue, conflicts_with = "hosts")]
all: bool,
#[arg(long, value_name = "LIST", conflicts_with = "all")]
hosts: Option<String>,
#[arg(required = true, num_args = 2.., value_names = ["VPS", "REMOTE", "LOCAL"])]
target: Vec<String>,
#[arg(short = 'r', long, action = ArgAction::SetTrue)]
recursive: bool,
#[command(flatten)]
auth: SshAuthArgs,
#[arg(long, value_name = "MS")]
timeout: Option<u64>,
#[arg(from_global)]
json: bool,
},
Ls {
vps_name: String,
remote: String,
#[command(flatten)]
auth: SshAuthArgs,
#[arg(long, value_name = "MS")]
timeout: Option<u64>,
#[arg(from_global)]
json: bool,
},
Mkdir {
vps_name: String,
remote: String,
#[command(flatten)]
auth: SshAuthArgs,
#[arg(long, value_name = "MS")]
timeout: Option<u64>,
#[arg(from_global)]
json: bool,
},
Rmdir {
vps_name: String,
remote: String,
#[command(flatten)]
auth: SshAuthArgs,
#[arg(long, value_name = "MS")]
timeout: Option<u64>,
#[arg(from_global)]
json: bool,
},
Rm {
vps_name: String,
remote: String,
#[command(flatten)]
auth: SshAuthArgs,
#[arg(long, value_name = "MS")]
timeout: Option<u64>,
#[arg(from_global)]
json: bool,
},
Stat {
vps_name: String,
remote: String,
#[command(flatten)]
auth: SshAuthArgs,
#[arg(long, value_name = "MS")]
timeout: Option<u64>,
#[arg(from_global)]
json: bool,
},
Rename {
vps_name: String,
from: String,
to: String,
#[command(flatten)]
auth: SshAuthArgs,
#[arg(long, value_name = "MS")]
timeout: Option<u64>,
#[arg(from_global)]
json: bool,
},
}