Summary
Create comprehensive documentation and installation scripts for pdsh compatibility mode, including symlink setup, migration guide, and compatibility test suite.
Parent Issue
Part of #91 (pdsh compatibility mode) - Phase 4: Installation & Documentation
Prerequisites
- All Phase 1-3 features must be implemented and tested
Scope
1. Installation Scripts
Symlink Creation
Add to install scripts (Homebrew formula, cargo install post-hook, etc.):
# Create pdsh symlink pointing to bssh
ln -sf $(which bssh) /usr/local/bin/pdsh
Homebrew Formula Update
# In homebrew-bssh formula
def post_install
# Create pdsh compatibility symlink
bin.install_symlink "bssh" => "pdsh"
end
Shell Alias Alternative
# For users who prefer aliases over symlinks
# Add to .bashrc/.zshrc
alias pdsh='bssh --pdsh-compat'
2. Documentation Updates
README.md Section
Add a "pdsh Compatibility Mode" section:
- How to enable (symlink, env var, flag)
- Option mapping table
- Feature comparison
- Limitations
Migration Guide (docs/pdsh-migration.md)
- Side-by-side comparison of pdsh vs bssh commands
- Scripts to help migrate existing pdsh usage
- Common pdsh patterns and bssh equivalents
- Known incompatibilities
Man Page
- Add pdsh compatibility section to man page
- Consider separate
pdsh(1) man page that redirects to bssh
3. Compatibility Test Suite
Create test scripts that verify pdsh command compatibility:
#!/bin/bash
# tests/pdsh_compat_test.sh
# Test basic host targeting
pdsh -w "node1,node2" "echo hello"
# Test range expansion
pdsh -w "node[1-5]" "hostname"
# Test fanout
pdsh -w "node[1-10]" -f 5 "uptime"
# Test exclusion
pdsh -w "node[1-10]" -x "node[3-5]" "hostname"
# Test timeout options
pdsh -w "node1" -t 5 -u 30 "sleep 1 && echo done"
Implementation Tasks
Installation
Documentation
Testing
Documentation Structure
docs/
├── pdsh-migration.md # Migration guide
├── pdsh-options.md # Full option mapping reference
└── pdsh-examples.md # Common use cases
tests/
└── pdsh_compat/
├── test_basic.sh
├── test_hostlist.sh
├── test_options.sh
└── test_edge_cases.sh
Acceptance Criteria
Notes
- Consider creating a compatibility matrix comparing pdsh versions
- May want to add
bssh pdsh-help command for pdsh-style help
- Document any intentional deviations from pdsh behavior
Summary
Create comprehensive documentation and installation scripts for pdsh compatibility mode, including symlink setup, migration guide, and compatibility test suite.
Parent Issue
Part of #91 (pdsh compatibility mode) - Phase 4: Installation & Documentation
Prerequisites
Scope
1. Installation Scripts
Symlink Creation
Add to install scripts (Homebrew formula, cargo install post-hook, etc.):
Homebrew Formula Update
Shell Alias Alternative
2. Documentation Updates
README.md Section
Add a "pdsh Compatibility Mode" section:
Migration Guide (
docs/pdsh-migration.md)Man Page
pdsh(1)man page that redirects to bssh3. Compatibility Test Suite
Create test scripts that verify pdsh command compatibility:
Implementation Tasks
Installation
Documentation
docs/pdsh-migration.mdmigration guidedocs/pdsh-options.mdoption mapping referencedocs/pdsh-examples.mdusage examplesTesting
tests/pdsh_compat/test directoryDocumentation Structure
Acceptance Criteria
brew install bsshcreates working pdsh symlink (deferred to Homebrew formula PR)Notes
bssh pdsh-helpcommand for pdsh-style help