Metadata-Version: 2.4
Name: file-copy-tool
Version: 0.1.0
Summary: Non-Redundant Media File Copy Tool: resumable, auditable, cross-platform, CLI-based.
Home-page: https://github.com/yourusername/file-copy-tool
Author: Your Name
Author-email: your@email.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pytest
Requires-Dist: flake8
Requires-Dist: black
Requires-Dist: mypy
Requires-Dist: wmi
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Non-Redundant Media File Copy Tool

Safely copy media files (photos, videos) from a source HDD pool to a destination HDD pool, ensuring **no redundant (duplicate) files** at the destination. The tool is robust, resumable, and fully auditable, using an SQLite database for all state and supporting both fixed and removable drives.

---

## Features
- Block-wise (4KB) file copying and SHA-256 checksums
- No file is copied if its checksum already exists in the destination
- All state, logs, and planning files are stored in a dedicated job directory
- Fully resumable and idempotent: safely interrupt and resume at any time
- CLI commands for all phases: `init`, `analyze`, `import-checksums`, `checksum`, `copy`, `resume`, `status`, `log`
- Cross-platform: Windows & Linux
- Full test suite for all features and workflows

---

## Quick Start

### 1. Install Requirements
```
pip install -r requirements.txt
```

### 2. Initialize a Job Directory
```
python -m src.main init --job-dir .copy-task
```

### 3. Analyze Source and Destination Volumes
```
python -m src.main analyze --job-dir .copy-task --src <SRC_ROOT> --dst <DST_ROOT>
```

### 4. Compute Checksums
```
python -m src.main checksum --job-dir .copy-task --table source_files
python -m src.main checksum --job-dir .copy-task --table destination_files
```

### 5. Copy Non-Redundant Files
```
python -m src.main copy --job-dir .copy-task --src <SRC_ROOT> --dst <DST_ROOT>
```

### 6. Resume, Status, and Logs
```
python -m src.main resume --job-dir .copy-task --src <SRC_ROOT> --dst <DST_ROOT>
python -m src.main status --job-dir .copy-task
python -m src.main log --job-dir .copy-task
```

### 7. Import Checksums from Old Database (Optional)
```
python -m src.main import-checksums --job-dir .copy-task --old-db <OLD_DB_PATH> --table source_files
```

---

## CLI Commands
- `init` â€” Create and initialize a job directory
- `analyze` â€” Scan source/destination and update the database
- `import-checksums` â€” Import checksums from an old SQLite database
- `checksum` â€” Compute missing/stale checksums
- `copy` â€” Copy only non-duplicate files
- `resume` â€” Resume incomplete/failed operations
- `status` â€” Show job progress and statistics
- `log` â€” Output a log or audit trail

---

## Testing
Run all tests (Windows PowerShell):
```
./scripts/test.ps1
```
Or (Linux/macOS):
```
./scripts/test.sh
```

---

## Project Structure
- `src/` â€” Main source code
- `tests/` â€” Automated tests (pytest)
- `agents/` â€” Agent planning, memory, and reasoning
- `changes/` â€” Execution logs and persistent state
- `scripts/` â€” Automation scripts for testing, linting, formatting, and archival
- `Taskfile.yml` â€” Cross-platform automation tasks

---

## Requirements & Design
See `requirements.md` and `AGENTS.md` for full requirements, design, and agent workflow protocols.

---

## License
MIT License
