Commit graph

6 commits

Author SHA1 Message Date
c4f40e79c8
Improve tool update output and version display
Fixed two UX issues in tool update management:

1. Version Check Output:
   - Extract version numbers using regex (v1.2.3 pattern)
   - Show clean version instead of full banner output
   - Fallback to "installed" if version can't be parsed
   - Fixes noise from tool ASCII art banners

2. Update All Go Tools:
   - List all tools before confirmation prompt
   - Show which tools are installed vs will be skipped
   - Skip uninstalled tools during update loop
   - Report skipped count in final summary
   - Users can see exactly what will be updated

Changes:
- Added regex version extraction in check_tool_versions()
- Added tool list display in update_all_go_tools()
- Added skip logic for uninstalled tools
- Updated summary to show: Updated | Failed | Skipped

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 00:11:49 -06:00
bb18a5c070
Add tool update management with hybrid PDTM/go install approach
Implemented comprehensive tool update system with 4 options:
1. Check versions only (show installed vs latest)
2. Update all ProjectDiscovery tools (pdtm -ua) - FAST
3. Update all Go tools (go install @latest for each)
4. Select individual tools to update (gum multi-select)

Features:
- New main menu option "5) Check for Tool Updates"
- Hybrid approach: pdtm for PD tools, go install for all tools
- Auto-installs pdtm if not present
- Interactive gum multi-select for selective updates
- Progress indicators with success/fail counts
- Confirmation prompts before bulk updates
- Comprehensive logging of update operations

Implementation:
- Added update_tools_menu() with 4-option submenu
- check_tool_versions() - displays installed tool versions
- update_pd_tools_bulk() - fast PDTM update for PD tools
- update_all_go_tools() - comprehensive update for all Go tools
- update_selected_tools() - gum multi-select for individual updates
- Updated README with update strategies and usage examples
- Marked feature as complete in TODO.md

This gives users maximum flexibility:
- Power users: Quick pdtm update for all PD tools
- Comprehensive: Update everything including non-PD tools
- Selective: Cherry-pick specific tools to update
- Check-only: See what's outdated without updating

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 00:03:32 -06:00
5bc00b9643
Fix Python tools category crash in multi-select
Fixed AttributeError when selecting Python tools individually.

Problem:
- config.PYTHON_TOOLS is defined as a list, not a dict
- Code was calling .keys() on a list object
- Error: AttributeError: 'list' object has no attribute 'keys'

Solution:
- Removed .keys() call for Python tools since it's already a list
- Python tools now work correctly in multi-select menu

Note: Scripts category intentionally only allows "Install All"
since scripts are downloaded as a collection set.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 23:53:45 -06:00
52f654dd32
Add interactive tool selection with gum multi-select
Implemented comprehensive gum-based interactive tool selection for Level 3 menu.

Features:
- Added gum_multi_select() function to utils.py with proper type hints
- Implemented install_category_selected() in toolbelt.py
- Interactive multi-select for APT, Go, /opt, Python, and Docker categories
- Graceful fallback when gum is not installed
- Confirmation prompt before installation
- Updated README with gum usage examples
- Added PYTHON_STANDARDS.md for type hint requirements
- Created TODO.md with v2.1+ enhancement roadmap
- Added project branding images

User can now:
1. Browse categories and see tool counts
2. Use SPACE to toggle tools, ENTER when done
3. Review selected tools before installing
4. Get helpful prompts if gum is missing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 23:47:33 -06:00
fd0659d70c
Toolbelt v2.0 - Complete refactor with interactive menus and profiles
Major rewrite from single-file script to modular architecture with comprehensive features:

## New Features
- Interactive 3-level menu system (Main → Categories → Tools)
- Pre-built profiles: Bug Bounty, CTF, Web App, Network, Full Pentest
- Distro detection with appropriate tool sets (Kali, Debian, Ubuntu)
- NO root requirement - runs as user, uses sudo selectively
- Comprehensive logging (console + ~/toolbelt-install.log)
- Fresh CLI tool integration and detection
- Smart tool detection (skips already-installed tools)

## Architecture Changes
- Modular design: utils.py, config.py, installer.py, toolbelt.py
- utils.py: Distro detection, logging setup, helper functions
- config.py: Tool definitions, profiles, category metadata
- installer.py: Installation logic for all tool categories
- toolbelt.py: Interactive menu system and main flow

## Improvements
- Fixed $HOME path resolution bug (no more /root issues)
- Added comprehensive error handling and reporting
- Category-based tool organization (APT, Go, /opt, Python, Docker, Scripts)
- Parallel Go tool installation with ThreadPoolExecutor
- Shell alias setup for Docker tools

## Documentation
- Complete README rewrite with usage examples
- Architecture diagrams and file structure
- Integration guide for fresh ecosystem
- Version history and changelog

## Archived Files
- toolbelt.sh → toolbelt.sh.old (legacy bash version)
- toolbelt.py → toolbelt_old.py (original Python v1.0)

Part of the Djedi security tooling ecosystem integration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 23:17:41 -06:00
rpriven
250e2284f6
Create toolbelt.py
Updated to python version of toolbelt
2023-01-26 02:27:31 -07:00