mirror of
https://github.com/veeso/termscp.git
synced 2026-09-26 05:51:20 -07:00
docs: document parser and file transfer params
This commit is contained in:
@@ -1,14 +1,28 @@
|
|||||||
|
//! ## AWS S3 Parameters
|
||||||
|
//!
|
||||||
|
//! Defines the runtime connection parameters used to build AWS S3 and
|
||||||
|
//! S3-compatible remote filesystem clients.
|
||||||
|
|
||||||
/// Connection parameters for AWS S3 protocol
|
/// Connection parameters for AWS S3 protocol
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct AwsS3Params {
|
pub struct AwsS3Params {
|
||||||
|
/// Target bucket name.
|
||||||
pub bucket_name: String,
|
pub bucket_name: String,
|
||||||
|
/// Target region.
|
||||||
pub region: Option<String>,
|
pub region: Option<String>,
|
||||||
|
/// Optional custom endpoint URL.
|
||||||
pub endpoint: Option<String>,
|
pub endpoint: Option<String>,
|
||||||
|
/// Optional shared credentials profile.
|
||||||
pub profile: Option<String>,
|
pub profile: Option<String>,
|
||||||
|
/// Optional static access key.
|
||||||
pub access_key: Option<String>,
|
pub access_key: Option<String>,
|
||||||
|
/// Optional static secret access key.
|
||||||
pub secret_access_key: Option<String>,
|
pub secret_access_key: Option<String>,
|
||||||
|
/// Optional security token for temporary credentials.
|
||||||
pub security_token: Option<String>,
|
pub security_token: Option<String>,
|
||||||
|
/// Optional session token for temporary credentials.
|
||||||
pub session_token: Option<String>,
|
pub session_token: Option<String>,
|
||||||
|
/// Whether to force path-style bucket addressing.
|
||||||
pub new_path_style: bool,
|
pub new_path_style: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,35 @@
|
|||||||
|
//! ## Kubernetes Parameters
|
||||||
|
//!
|
||||||
|
//! Defines the runtime parameters used to construct Kubernetes-backed file
|
||||||
|
//! transfer clients.
|
||||||
|
|
||||||
use remotefs_kube::Config;
|
use remotefs_kube::Config;
|
||||||
|
|
||||||
/// Protocol params used by WebDAV
|
/// Protocol params used by Kubernetes connections.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct KubeProtocolParams {
|
pub struct KubeProtocolParams {
|
||||||
|
/// Optional namespace for the default pod context.
|
||||||
pub namespace: Option<String>,
|
pub namespace: Option<String>,
|
||||||
|
/// Optional Kubernetes API URL.
|
||||||
pub cluster_url: Option<String>,
|
pub cluster_url: Option<String>,
|
||||||
|
/// Optional username override.
|
||||||
pub username: Option<String>,
|
pub username: Option<String>,
|
||||||
|
/// Optional client certificate path.
|
||||||
pub client_cert: Option<String>,
|
pub client_cert: Option<String>,
|
||||||
|
/// Optional client key path.
|
||||||
pub client_key: Option<String>,
|
pub client_key: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl KubeProtocolParams {
|
impl KubeProtocolParams {
|
||||||
|
/// Kubernetes connections do not use the shared password secret flow.
|
||||||
pub fn set_default_secret(&mut self, _secret: String) {}
|
pub fn set_default_secret(&mut self, _secret: String) {}
|
||||||
|
|
||||||
|
/// Kubernetes params never require the generic password prompt.
|
||||||
pub fn password_missing(&self) -> bool {
|
pub fn password_missing(&self) -> bool {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Converts bookmark/runtime parameters into a `remotefs_kube` config.
|
||||||
pub fn config(self) -> Option<Config> {
|
pub fn config(self) -> Option<Config> {
|
||||||
if let Some(cluster_url) = self.cluster_url {
|
if let Some(cluster_url) = self.cluster_url {
|
||||||
let mut config = Config::new(cluster_url.parse().unwrap_or_default());
|
let mut config = Config::new(cluster_url.parse().unwrap_or_default());
|
||||||
|
|||||||
@@ -1,13 +1,24 @@
|
|||||||
|
//! ## SMB Parameters
|
||||||
|
//!
|
||||||
|
//! Defines the runtime connection parameters used to build SMB remote
|
||||||
|
//! filesystem clients.
|
||||||
|
|
||||||
/// Connection parameters for SMB protocol
|
/// Connection parameters for SMB protocol
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct SmbParams {
|
pub struct SmbParams {
|
||||||
|
/// Hostname or address of the SMB server.
|
||||||
pub address: String,
|
pub address: String,
|
||||||
#[cfg(posix)]
|
#[cfg(posix)]
|
||||||
|
/// SMB service port used on POSIX platforms.
|
||||||
pub port: u16,
|
pub port: u16,
|
||||||
|
/// Share name to mount.
|
||||||
pub share: String,
|
pub share: String,
|
||||||
|
/// Optional username.
|
||||||
pub username: Option<String>,
|
pub username: Option<String>,
|
||||||
|
/// Optional password.
|
||||||
pub password: Option<String>,
|
pub password: Option<String>,
|
||||||
#[cfg(posix)]
|
#[cfg(posix)]
|
||||||
|
/// Optional workgroup used on POSIX platforms.
|
||||||
pub workgroup: Option<String>,
|
pub workgroup: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,25 @@
|
|||||||
|
//! ## WebDAV Parameters
|
||||||
|
//!
|
||||||
|
//! Defines the runtime connection parameters used to build WebDAV clients.
|
||||||
|
|
||||||
/// Protocol params used by WebDAV
|
/// Protocol params used by WebDAV
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct WebDAVProtocolParams {
|
pub struct WebDAVProtocolParams {
|
||||||
|
/// Base WebDAV endpoint URI.
|
||||||
pub uri: String,
|
pub uri: String,
|
||||||
|
/// Username used for authentication.
|
||||||
pub username: String,
|
pub username: String,
|
||||||
|
/// Password used for authentication.
|
||||||
pub password: String,
|
pub password: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebDAVProtocolParams {
|
impl WebDAVProtocolParams {
|
||||||
|
/// Stores the shared secret as the active WebDAV password.
|
||||||
pub fn set_default_secret(&mut self, secret: String) {
|
pub fn set_default_secret(&mut self, secret: String) {
|
||||||
self.password = secret;
|
self.password = secret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns whether the WebDAV password is currently missing.
|
||||||
pub fn password_missing(&self) -> bool {
|
pub fn password_missing(&self) -> bool {
|
||||||
self.password.is_empty()
|
self.password.is_empty()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
//! ## Parser Credential Helpers
|
||||||
|
//!
|
||||||
|
//! Shared capture-group helpers used by parser submodules when extracting
|
||||||
|
//! credentials and required fields from regex matches.
|
||||||
|
|
||||||
pub(super) fn optional_capture(groups: ®ex::Captures<'_>, index: usize) -> Option<String> {
|
pub(super) fn optional_capture(groups: ®ex::Captures<'_>, index: usize) -> Option<String> {
|
||||||
groups.get(index).map(|group| group.as_str().to_string())
|
groups.get(index).map(|group| group.as_str().to_string())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
//! ## Parser Remote Helpers
|
||||||
|
//!
|
||||||
|
//! Implements protocol-specific parsing for remote connection strings while
|
||||||
|
//! keeping the public parser API stable.
|
||||||
|
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
#[cfg(smb)]
|
#[cfg(smb)]
|
||||||
|
|||||||
Reference in New Issue
Block a user