smbcloud-deploy-rsync

Configure and debug smbCloud rsync deployments in the Rust CLI.

7|6|Updated Feb 3, 2023
One-click install
npx skills add https://github.com/smbcloudXYZ/smbcloud-cli --skill smbcloud-deploy-rsync
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: smbcloud-deploy-rsync
Source: https://github.com/smbcloudXYZ/smbcloud-cli/tree/main/.agents/skills/smbcloud-deploy-rsync
Command: npx skills add https://github.com/smbcloudXYZ/smbcloud-cli --skill smbcloud-deploy-rsync

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Implementing smbCloud's generic rsync-based deployment path within the Rust CLI can be error-prone due to trailing-slash semantics, SSH identity handling, and parity with shell rsync commands.

Core Features & Use Cases

  • Rsync parity: ensure source and destination path semantics match shell rsync (source/ -> copy contents, destination/ -> copy into directory).
  • Workspace wiring: describe how to wire workspace dependencies and integrate rsync_deploy.rs.
  • SSH identity handling: resolve and apply SSH keys for remote deploy targets.
  • Use Case: use when implementing or debugging the generic rsync deploy path in smbcloud-cli.

Quick Start

Run a dry-run deployment using a test project to verify the rsync-based path executes without errors.

Frequently Asked Questions about smbcloud-deploy-rsync

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I ensure my Rust CLI rsync deployment matches shell rsync trailing slash semantics?

To ensure rsync parity, source paths with a trailing slash copy directory contents, while destination paths with a slash copy into the directory. The Rust CLI deployment path normalizes these remote paths to match shell rsync semantics exactly.

How do I handle SSH identity resolution when deploying to remote targets with rsync?

SSH identity handling for remote deploy targets involves resolving and applying the correct SSH keys within the Rust CLI. The deployment path ensures proper host:path syntax is used while the embedded Rust rsync client manages the secure connection.

What is the best way to wire workspace dependencies for an rsync-based deployment in a Rust CLI?

Workspace wiring for rsync deployments involves integrating the rsync_deploy.rs module into your Rust CLI. This setup ensures workspace dependencies are correctly configured to execute the generic deployment path without errors.

How do I debug rsync path normalization issues in my Rust CLI?

Debugging rsync path normalization requires verifying host:path syntax and trailing slash rules within your Rust CLI. Running a dry-run deployment against a test project helps isolate and resolve parity mismatches with shell rsync commands.

Can I use an embedded Rust rsync client for generic deployments without relying on system shell commands?

Yes, an embedded Rust rsync client executes generic deployments directly. It applies remote path normalization and SSH identity handling internally, ensuring parity with shell rsync without needing external system shell commands.

Why does my rsync deployment copy the directory itself instead of its contents in Rust?

This happens when source path trailing slash semantics are mismatched. In rsync, a source path without a trailing slash copies the directory itself, while adding a slash copies only the contents into the normalized remote destination path.