A (WIP) command-line interface for the Tatin package manager, allowing you to manage APL packages from your terminal.
TatinCLI bridges the gap between Tatin's APL session commands and standard shell environments. Instead of working within the APL session, you can now manage your APL packages directly from your terminal.
]Tatin.InstallPackages APLPage
]Tatin.ListPackages
]Tatin.UnInstallPackages APLPagetatin install APLPage
tatin list
tatin uninstall APLPage- Dyalog APL: Version 20.0 or later
- DyalogScript: Must be available in your PATH
- Linux/macOS:
curlorwget, andunzip
Use one of the installation methods below:
# Download and run the installation script
curl -sSL https://raw.githubusercontent.com/Bombardier-C-Kram/TatinCLI/main/install.sh | bash# Download and run the PowerShell installation script
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Bombardier-C-Kram/TatinCLI/main/install.ps1" -OutFile "install.ps1"
.\install.ps1If you prefer to clone the repository directly (requires Git), you can do that as well.
- Linux/macOS System-wide:
/usr/local/lib/tatin-cli/with symlink in/usr/local/bin/ - Linux/macOS User-only:
~/.local/lib/tatin-cli/with symlink in~/.local/bin/ - Windows System-wide:
C:\Program Files\TatinCLI\(added to system PATH) - Windows User-only:
%LOCALAPPDATA%\TatinCLI\(added to user PATH)
tatin versionNote: After installation, you may need to restart your terminal or command prompt (Windows) to access the
tatincommand.
To remove TatinCLI from your system, navigate to the installation directory and run the uninstall script:
# For system-wide installation
cd /usr/local/lib/tatin-cli/
sudo ./uninstall.sh
# For user-only installation
cd ~/.local/lib/tatin-cli/
./uninstall.sh# For system-wide installation
cd "C:\Program Files\TatinCLI"
.\uninstall.bat
# For user-only installation
cd "$env:LOCALAPPDATA\TatinCLI"
.\uninstall.batNote: On Windows, you may need to run the command prompt as Administrator for system-wide installations.
| Command | Alias | Description | Example |
|---|---|---|---|
install |
i |
Install a package | tatin install APLPage |
uninstall |
u |
Uninstall a package | tatin uninstall APLPage |
list |
l |
List installed packages | tatin list |
search |
s |
Search for packages | tatin search JSON |
update |
Update all packages | tatin update |
|
updatetatin |
Update Tatin itself | tatin updatetatin |
|
info |
Show package/version info | tatin info APLPage |
|
help |
Show help message | tatin help |
|
version |
Show version info | tatin version |
--target <path>: Specify target directory (default:./packages)--verbose,-v: Enable verbose output for debugging--help,-h: Show help information
# Basic package management
tatin install APLPage # Install APLPage to ./packages
tatin i JWTAPL --target ./libs # Install JWTAPL to ./libs directory
tatin list --target ./packages # List packages in ./packages
tatin uninstall APLPage # Remove APLPage
# Search and information
tatin search JSON # Search for JSON-related packages
tatin info APLPage # Show information about APLPage
tatin info # Show Tatin version information
# Maintenance
tatin update --verbose # Update all packages with verbose output
tatin updatetatin # Update Tatin itself to latest versionTatinCLI is built using:
- DyalogScript: The main executable wrapper
- ⎕SE.Tatin API: Leverages Dyalog's built-in Tatin functionality
- Command-line parsing: Robust argument processing with options support
- Add support for Windows environments
- Add support for private registries configuration
- Create automated tests for all commands
- Add shell completion scripts (bash/zsh)
- Create CI/CD integration
- Check out the Tatin documentation for some more details on Tatin itself.
- Package names can include version specifiers (e.g.,
APLPage-1.0.0) - The update command checks for and installs newer versions of all packages
- Use
--verboseto see detailed operation logs - The default target directory is
./packagesrelative to the current directory - All operations respect Tatin's registry and dependency resolution
Contributions are welcome! This project is written in Dyalog APL.
This project's license can be found here