Skip to main content

Universal cleanup tool for ANY files/folders - works with all languages and build systems

Project description

🧹 jhadoo - Universal Cleanup Tool

Smart cleanup for any unused files/folders in your projects. Works with Python, Node.js, Rust, Go, Java, C++, or custom folders.

PyPI version License: MIT

Quick Start

# Install
pip install jhadoo

# Preview (safe)
jhadoo --dry-run

# Run cleanup
jhadoo

# Archive mode (safer)
jhadoo --archive

# Schedule daily cleanup
jhadoo --schedule daily --archive

# View stats
jhadoo --dashboard

Features

  • Universal: Works with ANY file/folder name (venv, node_modules, build, dist, target, or custom)
  • Safe: Dry-run mode, size caps, confirmations, archive mode
  • Scheduled: Built-in cron/Task Scheduler integration
  • Cross-platform: macOS, Windows, Linux
  • Smart: Dashboard with trends, progress bars, notifications

Configuration

# Generate config
jhadoo --generate-config

# Edit and use
jhadoo --config jhadoo_config.json

Example config:

{
  "targets": [
    {"name": "venv", "days_threshold": 7, "enabled": true},
    {"name": "node_modules", "days_threshold": 14, "enabled": true},
    {"name": "build", "days_threshold": 14, "enabled": true},
    {"name": "YOUR_CUSTOM_FOLDER", "days_threshold": 7, "enabled": true}
  ],
  "exclusions": ["~/important-project"],
  "safety": {
    "size_threshold_mb": 5000,
    "require_confirmation_above_mb": 500
  }
}

Scheduling

# Daily at 2 AM
jhadoo --schedule daily

# Weekly (Sunday 2 AM)
jhadoo --schedule weekly

# Custom cron
jhadoo --cron "0 3 * * 1"  # Monday 3 AM

# Manage
jhadoo --list-schedules
jhadoo --remove-schedule

Examples

See examples/ for detailed code examples:

  • 01_basic_usage.py - Dry-run, archive, actual cleanup
  • 02_custom_config.py - Custom configuration
  • 03_scheduling.py - Automated scheduling

Universal Support

Works with all languages and build systems:

Language Folders
Python venv, __pycache__, .pytest_cache, .tox
Node.js node_modules, .next, .nuxt
Rust target
Go vendor, bin
Java target, build, .gradle
C/C++ build, *.o
.NET bin, obj
Custom Any folder you specify!

Python API

from jhadoo import Config, CleanupEngine, Scheduler

# Run cleanup
config = Config()
engine = CleanupEngine(config, dry_run=True)
result = engine.run()

# Schedule
scheduler = Scheduler()
scheduler.schedule('daily', archive=True)

Command Reference

jhadoo [OPTIONS]

Options:
  -c, --config FILE     Custom config file
  -n, --dry-run        Preview without deleting
  -a, --archive        Move to archive instead of delete
  -d, --dashboard      Show statistics
  
  --schedule FREQ     Schedule cleanup (daily/weekly/monthly/hourly)
  --cron EXPR         Custom cron expression
  --list-schedules    List scheduled tasks
  --remove-schedule   Remove scheduled tasks
  
  --generate-config   Create sample config
  -v, --version       Show version

Safety

  • Size warnings: Alerts if deletion exceeds 5GB
  • Confirmations: Asks before deleting >500MB
  • Exclusions: Protect critical folders
  • System protection: Never touches OS directories
  • Deletion manifest: JSON log for recovery

File Locations

  • Logs: ~/.jhadoo/cleanup_log.csv
  • Manifest: ~/.jhadoo/deletion_manifest.json
  • Archive: ~/.jhadoo_archive/

License

MIT License - see LICENSE


ExamplesPublishing GuideTechnical Docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jhadoo-1.0.1.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jhadoo-1.0.1-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file jhadoo-1.0.1.tar.gz.

File metadata

  • Download URL: jhadoo-1.0.1.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for jhadoo-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d59ea42b4136af07b5dcce609201d2a5808b89897939729b73d6e5d019521a5e
MD5 7a3a45184e600a38a15124b0c8d919cc
BLAKE2b-256 812d16681f48b87e02b43d6586ce04ba9bc63728fa7a18820715254afd86273a

See more details on using hashes here.

File details

Details for the file jhadoo-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: jhadoo-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for jhadoo-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06b4746dfcb381f771ca4e6f872b6f78f3e5c9da8a84d78a9a21ffa2e5de7c34
MD5 d81a42562d6b4f40c165f9897f487592
BLAKE2b-256 86a9fa9d6cee3e3723986d1a1fa669b7e3d6dd4761ffa21e8707b7bf2ef6bb42

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page