Files
tustu/scripts/TUSTU_TOOLS_README.md
johndoe6345789 db8eac5a02 feat: Add unified command-line utility for TunerStudio project
- Introduced `tustu_tools.py` to consolidate various scripts into a single command-line tool.
- Implemented key generation functionality with multiple algorithms.
- Added dummy data generation and email formatting capabilities.
- Included structure analysis and constructor fixing for Java files.
- Created wrapper script `tustu-tools` for easy access to the utility.
- Developed test scripts for dummy data and email generation.
- Added a script for reorganizing the app directory structure.
2026-01-11 21:05:10 +00:00

8.1 KiB

TuStu Tools - Unified Command-Line Utility

A comprehensive command-line tool that consolidates all scripts from the scripts/ folder into a single, easy-to-use utility with argparse-based interface.

TL;DR: Run ./tustu-tools --help from project root for all commands.

Table of Contents


Features

This tool combines functionality from:

Original Script New Command Description
registration_gui.py gui PyQt6 GUI for key generation
demo_test_data_ui.py + test_dummy_data.py test-data Generate test data with valid keys
test_email_generation.py gen-key --email-format Create registration emails
fix_constructors.py + fix_constructors_v2.py fix-constructors Fix Java constructor names
reorganize_structure.py analyze Analyze project structure
rename_obfuscated_files.py Core utilities File renaming functions

Installation

No installation needed! The tool uses Python 3 standard library.

Optional: For GUI support, install PyQt6:

pip install PyQt6

Usage

General Syntax

./tustu_tools.py <command> [options]

Available Commands

Command Description
gen-key Generate registration keys (4/5/7/8 parameter algorithms)
test-data Generate test data sets with valid keys
fix-constructors Fix misnamed Java constructors
analyze Analyze project structure and packages
gui Launch PyQt6 registration GUI (requires PyQt6)

Get help for any command:

./tustu-tools <command> --help

1. Generate Registration Keys

Generate a registration key with test data:

./tustu_tools.py gen-key --test-data --algorithm 5param

Generate a key with specific parameters:

./tustu_tools.py gen-key \
  --first-name John \
  --last-name Doe \
  --email john@example.com \
  --product MegaLogViewer \
  --secret secret123

Generate with email format:

./tustu_tools.py gen-key --test-data --email-format

Algorithms available:

  • 4param - Basic obfuscation (4 parameters)
  • 5param - Standard (5 parameters) - default
  • 7param - Enhanced (7 parameters)
  • 8param - Full (8 parameters)

2. Generate Test Data

Generate 5 test data sets with valid keys:

./tustu_tools.py test-data -n 5

Generate with email format:

./tustu_tools.py test-data -n 3 --email-format

3. Fix Java Constructors

Fix misnamed constructors in the app directory:

./tustu_tools.py fix-constructors -d ./app

Scan a specific directory:

./tustu_tools.py fix-constructors -d /path/to/java/files

4. Analyze Project Structure

Analyze the current project structure:

./tustu_tools.py analyze

Save analysis to a JSON file:

./tustu_tools.py analyze -o structure_report.json

Analyze a different project:

./tustu_tools.py analyze -b /path/to/project -o report.json

5. Launch GUI

Launch the PyQt6 registration GUI (requires PyQt6):

./tustu_tools.py gui

Command Reference

gen-key - Generate Registration Key

Option Description
-f, --first-name First name
-l, --last-name Last name
-e, --email Email address
-p, --product Product name
-s, --secret Secret key
--serial Serial number
-a, --algorithm Algorithm: 4param, 5param, 7param, 8param (default: 5param)
--field1 Additional field 1 (for 7/8 param algorithms)
--field2 Additional field 2 (for 7/8 param algorithms)
-t, --test-data Generate random test data
--email-format Output in email format

test-data - Generate Test Data

Option Description
-n, --count Number of test data sets (default: 5)
--email-format Output in email format

fix-constructors - Fix Java Constructors

Option Description
-d, --directory Directory to scan (default: ./app)

analyze - Analyze Project Structure

Option Description
-b, --base-dir Base directory (default: .)
-o, --output Output JSON file

gui - Launch GUI

No options. Launches the PyQt6 registration GUI.

Examples

Example 1: Quick Test Key Generation

./tustu_tools.py gen-key --test-data

Output:

Generated test data:
  First Name: James
  Last Name:  Smith
  Email:      james.smith@gmail.com
  Product:    MegaLogViewer
  Secret:     secret123
  Serial:     SN001

Registration Key (5param):
  ABCD1234EFGH5678WXYZ

Example 2: Generate Email-Ready Keys

./tustu_tools.py gen-key --test-data --email-format

Output:

Generated test data:
  First Name: Mary
  Last Name:  Johnson
  Email:      mary.johnson@yahoo.com
  Product:    TunerStudio
  Secret:     testkey
  Serial:     ABC123

Registration Key (5param):
  XYZ9876MNOP5432QRST

Email Format:
[Registration]
First Name: Mary
Last Name: Johnson
Registered email: mary.johnson@yahoo.com
Serial Number: ABC123
Registration Key: XYZ9876MNOP5432QRST
[End Registration]

Example 3: Batch Test Data Generation

./tustu_tools.py test-data -n 10 --email-format > test_keys.txt

Example 4: Project Analysis

./tustu_tools.py analyze -o structure.json

Output:

======================================================================
STRUCTURE ANALYSIS
======================================================================
Total Java files:    1247
Unique packages:     89
Package mismatches:  342

Package breakdown:
  Obfuscated (1-2 letters): 26
  Proper (com.*, org.*):    63

Analysis saved to: structure.json

Example 5: Fix All Constructors

./tustu_tools.py fix-constructors -d ./app

Output:

Scanning for Java files in: ./app
  Fixed: ./app/A/File1.java:42 - A -> ClassNameA
  Fixed: ./app/B/File2.java:15 - B -> ClassNameB

✅ Fixed 23 files

Migration from Individual Scripts

The unified tool replaces multiple individual scripts with a single command interface:

Old Command New Command
python3 registration_gui.py ./tustu-tools gui
python3 test_dummy_data.py ./tustu-tools test-data
python3 test_email_generation.py ./tustu-tools gen-key --email-format
python3 fix_constructors.py ./tustu-tools fix-constructors
python3 reorganize_structure.py ./tustu-tools analyze

Legacy scripts are preserved in legacy/ folder for reference.

Benefits

Benefit Description
Unified Interface Single tool instead of multiple scripts
Consistent CLI All commands use argparse with --help
Better Discoverability Easy to find features via help text
Less Clutter One script instead of 8+ files
Easy to Extend Add new commands as needed

Legacy Scripts

Original scripts are preserved in the legacy/ folder:

  • registration_gui.py - Full PyQt6 GUI (still usable directly)
  • Other scripts - Kept for reference or standalone use

To use legacy scripts:

python3 legacy/registration_gui.py  # Direct GUI launch
python3 legacy/test_dummy_data.py   # Legacy test data script

Help & Support

Get detailed help for any command:

./tustu-tools --help                    # List all commands
./tustu-tools gen-key --help            # Key generation options
./tustu-tools test-data --help          # Test data options
./tustu-tools fix-constructors --help   # Constructor fix options
./tustu-tools analyze --help            # Analysis options

Contributing

To add a new command to the tool:

  1. Add a new subparser in the main() function
  2. Create a cmd_<name>(args) handler function
  3. Add dispatch logic to connect command to handler

See tustu_tools.py source for examples.