Initial commit: cpd-cli auto-update script
- update-cpd-cli.sh: automate CPD CLI version updates - README.md: project documentation - .gitignore: standard ignores
This commit is contained in:
106
README.md
Normal file
106
README.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# cpd-cli Update Automation Script
|
||||
|
||||
Automate [IBM cpd-cli](https://github.com/IBM/cpd-cli) version updates with a single script!
|
||||
|
||||
## Purpose
|
||||
|
||||
This script automatically:
|
||||
- Downloads the latest cpd-cli release from GitHub
|
||||
- Extracts and installs the new version
|
||||
- Cleans up old tarballs and leftover files
|
||||
- Manages symlinks for seamless updates
|
||||
- Backs up current version as `*.OLD` for rollback
|
||||
|
||||
## Requirements
|
||||
|
||||
- Bash 4+ or compatible shell
|
||||
- `curl` for downloading
|
||||
- `tar` for extraction
|
||||
- `sudo` for system-wide installation (or run as root)
|
||||
- `jq` (optional, for faster GitHub API parsing)
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Make executable
|
||||
chmod +x update-cpd-cli.sh
|
||||
|
||||
# Run update script
|
||||
./update-cpd-cli.sh
|
||||
|
||||
# Output:
|
||||
[INFO] Fetching latest release from GitHub API...
|
||||
[INFO] Downloading cpd-cli-linux-EE-14.3.2.tgz...
|
||||
[INFO] Installing cpd-cli 14.3.2...
|
||||
[SUCCESS] Successfully installed cpd-cli 14.3.2
|
||||
[UPDATE] Update completed successfully!
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
You can override defaults via environment variables:
|
||||
|
||||
```bash
|
||||
# Override installation path
|
||||
export CPD_CLI_PATH=/custom/installdir
|
||||
|
||||
# Override GitHub base URL
|
||||
export CPD_SOURCE=https://github.com/corp-softy/cpd-cli/releases
|
||||
|
||||
# Run with custom paths
|
||||
./update-cpd-cli.sh
|
||||
```
|
||||
|
||||
## What Happens
|
||||
|
||||
1. **Detects latest version** from GitHub Releases API
|
||||
2. **Downloads** the new release tarball (with retries)
|
||||
3. **Backs up** current installation as `*.OLD`
|
||||
4. **Extracts** new version to temp directory
|
||||
5. **Removes** old symlinks
|
||||
6. **Installs** new version and creates symlinks
|
||||
7. **Cleans up** old tarballs
|
||||
8. **Verifies** installation
|
||||
|
||||
## Rollback
|
||||
|
||||
If you need to rollback:
|
||||
|
||||
```bash
|
||||
# Reinstall version from OLD directory
|
||||
mv /path/to/cpd-cli-linux-EE.X.X.X-OLD /path/to/new/name
|
||||
# Or:
|
||||
sudo ln -s /path/to/cpd-cli-linux-EE.X.X.X-OLD/* /usr/local/bin/
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Make changes
|
||||
vim update-cpd-cli.sh
|
||||
|
||||
# Test locally
|
||||
./update-cpd-cli.sh
|
||||
|
||||
# Commit changes
|
||||
git add .
|
||||
git commit -m "update-cpd-cli.sh: some improvement"
|
||||
|
||||
# Push to remote
|
||||
./scripts/push_to_gitea.sh
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
Part of IBM Watson CPD tooling. See GitHub repo for full licensing.
|
||||
|
||||
## Contributing
|
||||
|
||||
Feel free to submit PRs for improvements!
|
||||
The script is production-quality but always room for improvement.
|
||||
|
||||
---
|
||||
|
||||
**Maintained by Michael Schapira** • IBM
|
||||
|
||||
[](https://github.com/IBM/cpd-cli/releases/latest)
|
||||
Reference in New Issue
Block a user