116 lines
2.5 KiB
Markdown
116 lines
2.5 KiB
Markdown
# 🗜️ Zipprine - TUI zipping tool
|
|
|
|
A simple and clean TUI application for managing archives/
|
|
|
|
## ✨ Features
|
|
|
|
### 📦 Compression
|
|
|
|
- **Multiple formats**: ZIP, TAR, TAR.GZ, GZIP
|
|
- **Compression levels**: Fast, Balanced, Best
|
|
- **Smart filtering**: Include/exclude patterns with wildcards
|
|
- **Integrity verification**: SHA256 checksums and validation
|
|
|
|
### 📂 Extraction
|
|
|
|
- **Auto-detection**: Automatically detects archive type by magic bytes
|
|
- **Safe extraction**: Optional overwrite protection
|
|
- **Permission preservation**: Keep original file permissions
|
|
- **Progress tracking**: Real-time extraction feedback
|
|
|
|
### 🔍 Analysis
|
|
|
|
- **Detailed statistics**: File count, sizes, compression ratios
|
|
- **File listing**: View contents without extraction
|
|
- **Checksum verification**: SHA256 integrity checks
|
|
- **Format detection**: Magic byte analysis
|
|
|
|
## 🚀 Installation
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/bereck-work/ziporine.git
|
|
cd zipprine
|
|
|
|
# Install dependencies
|
|
go mod download
|
|
|
|
# Build
|
|
go build -o zipprine ./cmd/ziprine
|
|
|
|
# Run
|
|
./ziprine
|
|
```
|
|
|
|
## 📖 Usage
|
|
|
|
Simply run `ziprine` and follow the interactive prompts!
|
|
|
|
### Compress Files
|
|
|
|
```bash
|
|
./ziprine
|
|
# Select: Compress files/folders
|
|
# Enter source path: /path/to/folder
|
|
# Choose format: ZIP, TAR.GZ, TAR, or GZIP
|
|
# Set compression level and filters
|
|
```
|
|
|
|
### Extract Archives
|
|
|
|
```bash
|
|
./ziprine
|
|
# Select: Extract archive
|
|
# Archive type is auto-detected!
|
|
# Choose destination and options
|
|
```
|
|
|
|
### Analyze Archives
|
|
|
|
```bash
|
|
./ziprine
|
|
# Select: Analyze archive
|
|
# View detailed statistics and file listing
|
|
```
|
|
|
|
## 🎨 Pattern Examples
|
|
|
|
**Exclude patterns**:
|
|
|
|
- `*.log` - Exclude all log files
|
|
- `node_modules` - Exclude node_modules directory
|
|
- `temp/*` - Exclude everything in temp folder
|
|
- `.git,__pycache__,*.tmp` - Multiple patterns
|
|
|
|
**Include patterns**:
|
|
|
|
- `*.go` - Only Go files
|
|
- `src/*,docs/*` - Only src and docs folders
|
|
- `*.md,*.txt` - Only markdown and text files
|
|
|
|
## 🏗️ Project Structure
|
|
|
|
```
|
|
ziprine/
|
|
├── cmd/ziprine/ # Main application entry
|
|
├── internal/
|
|
│ ├── archiver/ # Archive operations
|
|
│ ├── ui/ # TUI components
|
|
│ └── models/ # Data structures
|
|
└── pkg/fileutil/ # Utility functions
|
|
```
|
|
|
|
## 🛠️ Technologies
|
|
|
|
- **[Charm Bracelet Huh](https://github.com/charmbracelet/huh)** - Beautiful TUI forms
|
|
- **[Lipgloss](https://github.com/charmbracelet/lipgloss)** - Styling and colors
|
|
- **Go standard library** - Archive formats
|
|
|
|
## 📝 License
|
|
|
|
MIT License
|
|
|
|
## Things to do
|
|
|
|
- [ ] Add unit tests
|