Fast Reticulum Updater (F.R.U.) v0.8
A Python tool to check and update Reticulum ecosystem packages.
New Features in v0.8
Minor fix: Fixed display typo "updateing" bug
🚀 Performance
- Single API call per package - Caches GitHub version checks
- Timeouts on all network and subprocess operations
- Efficient version checking with normalized comparison
🎨 User Experience
- Colored output (automatic, with fallback if colorama not installed)
- Progress indicators (✓ ✗ ⚠ − ℹ)
- Config status display - Shows whether using default or custom config
- Summary report showing updated, skipped, and failed packages
- Clear status messages throughout the process
⚙️ Command Line Arguments
--auto/-a: Automatically update all packages without prompting--check-only/-c: Only check versions without updating--quiet/-q: Minimal output (errors and summary only)--break-system-packages/-b: Use --break-system-packages flag for pip (required on some systems)--save-config: Generate example configuration file--version/-v: Show version information--help/-h: Show help message
📁 Configuration Files
Supports custom package lists via JSON configuration. Checks for config in:
frup_config.json(current directory).frup_config.json(hidden file in current directory)~/.frup_config.json(user home directory)
When starting, the script shows whether it's using default or custom configuration.
🛡️ Error Handling
- Network timeouts (10 seconds for API calls)
- Process timeouts (120 seconds for pip operations)
- Graceful failure handling with clear error messages
- Keyboard interrupt handling (Ctrl+C)
Installation
Requirements
- Python 3.6+
- pip
- requests library (
pip install requests) - colorama library (optional, for colored output:
pip install colorama)
Setup
# Make executable (optional)
chmod +x frup.py
# Install optional colorama for colored output
pip install colorama
Usage Examples
Interactive Mode (default)
python3 frup.py
Shows all information and prompts for each update.
Auto-Update All Packages
python3 frup.py --auto
Automatically updates all out-of-date packages without prompting.
For Systems Requiring --break-system-packages (Debian 12+, Ubuntu 23.04+)
# Interactive with system packages flag
python3 frup.py --break-system-packages
# Auto-update with system packages flag
python3 frup.py --break-system-packages --auto
# Short form
python3 frup.py -b -a
Check Only (no updates)
python3 frup.py --check-only
Shows version comparison without performing any updates.
Quiet Auto-Update
python3 frup.py --quiet --auto
Silently updates all packages, showing only the summary.
Generate Config File
python3 frup.py --save-config
Creates frup_config_example.json that you can customize and rename to frup_config.json.
Configuration File Format
Create a frup_config.json file to customize which packages to check:
{
"packages": [
{
"name": "RNS",
"url": "https://github.com/markqvist/Reticulum"
},
{
"name": "CustomPackage",
"url": "https://github.com/user/repo",
"manual_install": true,
"skip_local_check": false
}
]
}
Package Options
name: Package name (used for pip)url: GitHub repository URLmanual_install: If true, only shows available versionskip_local_check: Skip checking local installationskip_version_comparison: Skip version comparisononline_only: Only check GitHub version
Output Symbols
- ✓ Success / Up to date
- ✗ Error / Failed
- ⚠ Warning / Timeout
- − Not installed / Skipped
- ℹ Information
Status Messages
When starting, the script displays which configuration it's using:
Using default configuration- No config file found, using built-in packagesUsing custom config: [path]- Found and loaded custom configuration
Version History
- v0.8 - Minor fix of "updateing" display typo bug
- v0.7 - Major rewrite with CLI args, config files, colored output, better error handling
- v0.6 - Fixed Linux keyboard permission issue
- v0.5 - Initial version
Author
Created by F
License
Open source - feel free to modify and distribute
Troubleshooting
"externally-managed-environment" error?
Modern systems (Debian 12+, Ubuntu 23.04+, etc.) require the --break-system-packages flag:
python3 frup.py --break-system-packages --auto
# or short form
python3 frup.py -b -a
The script will automatically detect this and prompt you to retry with the flag if needed.
No colored output?
Install colorama: pip install colorama
Permission errors?
No longer requires sudo! The keyboard dependency was removed in v0.6+
Network timeouts?
The tool has a 10-second timeout for GitHub API calls. Check your internet connection.
Custom packages not updating?
Make sure the package name matches exactly what's used in pip.
Want to reset to default packages?
Simply delete or rename your frup_config.json file.