Pywayne Bin Gettool
by @wangyendt
Fetch and install C++ tools/libraries from cpp_tools repository. Use when users need to download or clone third-party C++ libraries such as eigen, opencv, pc...
clawhub install gettoolπ About This Skill
name: pywayne-bin-gettool description: Fetch and install C++ tools/libraries from cpp_tools repository. Use when users need to download or clone third-party C++ libraries such as eigen, opencv, pcl, fmt. Use for building tools from source using CMake, installing tools with installation scripts, listing available tools, or managing cpp_tools repository URL. Triggered by requests to fetch, get, download, clone, or install C++ tools or libraries.
Pywayne Bin Gettool
Tool fetcher for C++ libraries from cpp_tools repository. Supports sparse checkout, optional building with CMake/make, and installation scripts.
Quick Start
# List all supported tools
gettool -lFetch a tool to default path (based on name_to_path_map.yaml)
gettool Fetch to specific path
gettool -t Fetch and build (if buildable)
gettool -bFetch and install (if installable)
gettool -i
Usage Patterns
1. List Available Tools
When user wants to see what tools are available:
gettool -l
2. Simple Fetch
Download tool source code to default path (determined by name_to_path_map.yaml in current directory):
gettool opencv
gettool eigen
3. Fetch with Custom Target
Download tool to a specific directory:
gettool opencv -t third_party/opencv
gettool eigen -t external/eigen
4. Build from Source
Build the tool using CMake and make. Requirements:
buildable: true in name_to_path_map.yamlCMakeLists.txt filegettool apriltag_detection -b
gettool -b -t build/
5. Clean Copy (src + include only)
Fetch only src/ and include/ directories if they exist:
gettool eigen -c
6. Fetch and Install
After fetching, execute the tool's installation script (if configured):
gettool pcl -i
gettool pcl -i --global-install-flag true # Use sudo make install
7. Fetch Specific Version
Check out a specific version/tag/branch (only works for tools that are submodules):
gettool fmt -v 9.1.0
8. Manage Repository URL
# Show current URL
gettool --get-urlSet custom URL
gettool --set-url Reset to default URL
gettool --reset-url
Command Reference
| Argument | Description |
|----------|-------------|
| or -n | Tool name from name_to_path_map.yaml |
| -t | Target output directory (default: based on mapping) |
| -b / --build | Build using CMake + make (if buildable) |
| -c / --clean | Copy only src/include directories |
| -v | Checkout specific version (submodules only) |
| -i / --install | Run installation script (if installable) |
| --global-install-flag | Set to true for sudo make install |
| -l / --list | List all supported tools |
| --get-url | Show current repository URL |
| --set-url | Set repository URL |
| --reset-url | Reset to default URL |
Tool Types and Behavior
Submodule Tools
-v for version checkout-b for source-level build if configured)Non-Submodule Tools (Sparse Checkout)
-b (requires buildable=true and CMakeLists.txt)lib/) copied to target directoryDefault Path Mapping
When -t is not specified, the target path is determined by the path field in name_to_path_map.yaml relative to the current working directory.
Example: If opencv maps to third_party/opencv, running gettool opencv creates ./third_party/opencv.
Prerequisites
-b flag)Common Tool Names
Typical tools available (run gettool -l for current list):
eigen - Linear algebra libraryopencv - Computer vision librarypcl - Point Cloud Libraryfmt - Formatting libraryapriltag_detection - AprilTag detectionspdlog - Fast C++ logging libraryπ‘ Examples
# List all supported tools
gettool -lFetch a tool to default path (based on name_to_path_map.yaml)
gettool Fetch to specific path
gettool -t Fetch and build (if buildable)
gettool -bFetch and install (if installable)
gettool -i
βοΈ Configuration
-b flag)