filemayor 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -144
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,188 +1,91 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# FileMayor
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Organize, scan, clean, and watch your filesystem — from any terminal.**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
`v2.0.1` · Windows · macOS · Linux · Node ≥18
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
[](LICENSE)
|
|
11
|
-
[]()
|
|
12
|
-
[]()
|
|
9
|
+
</div>
|
|
13
10
|
|
|
14
11
|
---
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
</div>
|
|
19
|
-
|
|
20
|
-
## 🚀 Install
|
|
13
|
+
## Install
|
|
21
14
|
|
|
22
15
|
```bash
|
|
23
|
-
# npm (recommended)
|
|
24
16
|
npm install -g filemayor
|
|
25
|
-
|
|
26
|
-
# Or one-liner
|
|
27
|
-
curl -fsSL https://raw.githubusercontent.com/filemayor/filemayor/main/install.sh | bash
|
|
28
17
|
```
|
|
29
18
|
|
|
30
|
-
##
|
|
31
|
-
|
|
32
|
-
| Feature | Description |
|
|
33
|
-
|---------|-------------|
|
|
34
|
-
| **Scan** | Recursively scan directories with size, category, and date filtering |
|
|
35
|
-
| **Organize** | Auto-categorize files into 12 categories with configurable naming |
|
|
36
|
-
| **Clean** | Detect and remove junk files (temp, cache, logs, system junk) |
|
|
37
|
-
| **Watch** | Real-time file watcher with rules engine and auto-organize |
|
|
38
|
-
| **Undo** | Full rollback journal — undo any organization safely |
|
|
39
|
-
| **Config** | `.filemayor.yml` config with hierarchical merge and env vars |
|
|
40
|
-
|
|
41
|
-
## 🖥 CLI Usage
|
|
19
|
+
## Commands
|
|
42
20
|
|
|
43
21
|
```bash
|
|
44
|
-
#
|
|
45
|
-
filemayor
|
|
46
|
-
|
|
47
|
-
#
|
|
48
|
-
filemayor
|
|
22
|
+
filemayor scan ~/Downloads # See what's in a folder
|
|
23
|
+
filemayor organize ~/Downloads # Sort files into categories
|
|
24
|
+
filemayor organize ~/Downloads --dry-run # Preview without moving
|
|
25
|
+
filemayor clean /var/tmp --yes # Delete junk files
|
|
26
|
+
filemayor watch ~/Downloads # Auto-organize in real-time
|
|
27
|
+
filemayor undo ~/Downloads # Undo last organization
|
|
28
|
+
filemayor init # Create config file
|
|
29
|
+
filemayor info # System info + version
|
|
30
|
+
```
|
|
49
31
|
|
|
50
|
-
|
|
51
|
-
filemayor organize ~/Downloads --naming category_prefix
|
|
32
|
+
## What It Does
|
|
52
33
|
|
|
53
|
-
|
|
54
|
-
|
|
34
|
+
| Command | Description |
|
|
35
|
+
|---------|-------------|
|
|
36
|
+
| `scan` | Recursively scan directories — size, type, date filtering |
|
|
37
|
+
| `organize` | Auto-sort files into 12 categories with undo journal |
|
|
38
|
+
| `clean` | Detect and remove temp, cache, logs, system junk |
|
|
39
|
+
| `watch` | Monitor folders in real-time with rules engine |
|
|
40
|
+
| `undo` | Rollback any organization safely |
|
|
55
41
|
|
|
56
|
-
|
|
57
|
-
filemayor watch ~/Downloads
|
|
42
|
+
## 12 File Categories · 180+ Extensions
|
|
58
43
|
|
|
59
|
-
|
|
60
|
-
filemayor init
|
|
44
|
+
Documents · Images · Audio · Video · Archives · Code · Config · Fonts · Data · Executables · Design · Books
|
|
61
45
|
|
|
62
|
-
|
|
63
|
-
filemayor undo ~/Downloads
|
|
46
|
+
## Output Formats
|
|
64
47
|
|
|
65
|
-
|
|
66
|
-
filemayor scan
|
|
67
|
-
filemayor scan . --csv >
|
|
48
|
+
```bash
|
|
49
|
+
filemayor scan . --json # Machine-readable JSON
|
|
50
|
+
filemayor scan . --csv > out.csv # Spreadsheet export
|
|
51
|
+
filemayor scan . --minimal # Paths only
|
|
68
52
|
```
|
|
69
53
|
|
|
70
|
-
##
|
|
54
|
+
## Configuration
|
|
71
55
|
|
|
72
|
-
Create
|
|
56
|
+
Create `.filemayor.yml` in any directory:
|
|
73
57
|
|
|
74
58
|
```yaml
|
|
75
|
-
version: 1
|
|
76
|
-
|
|
77
59
|
organize:
|
|
78
|
-
naming: category_prefix
|
|
79
|
-
duplicates: rename
|
|
80
|
-
|
|
81
|
-
ignore: [node_modules, .git, __pycache__, dist, build]
|
|
82
|
-
|
|
83
|
-
clean:
|
|
84
|
-
categories: [temp, cache, system, logs]
|
|
85
|
-
maxDepth: 10
|
|
60
|
+
naming: category_prefix # original | category_prefix | date_prefix
|
|
61
|
+
duplicates: rename # rename | skip | overwrite
|
|
62
|
+
ignore: [node_modules, .git, dist]
|
|
86
63
|
|
|
87
64
|
watch:
|
|
88
65
|
directories: [~/Downloads]
|
|
89
|
-
autoOrganize: false
|
|
90
66
|
rules:
|
|
91
67
|
- match: "*.pdf"
|
|
92
68
|
action: move
|
|
93
69
|
dest: ~/Documents/PDFs
|
|
94
|
-
- match: "*.{jpg,png,gif}"
|
|
95
|
-
action: move
|
|
96
|
-
dest: ~/Pictures
|
|
97
|
-
|
|
98
|
-
output:
|
|
99
|
-
format: table # table | json | csv | minimal
|
|
100
|
-
colors: true
|
|
101
70
|
```
|
|
102
71
|
|
|
103
|
-
##
|
|
104
|
-
|
|
105
|
-
FileMayor recognizes **12 file categories** with **180+ extensions**:
|
|
106
|
-
|
|
107
|
-
| Category | Extensions |
|
|
108
|
-
|----------|-----------|
|
|
109
|
-
| Documents | pdf, doc, docx, txt, md, epub... |
|
|
110
|
-
| Images | jpg, png, gif, svg, webp, psd... |
|
|
111
|
-
| Audio | mp3, wav, flac, aac, ogg... |
|
|
112
|
-
| Video | mp4, mkv, avi, mov, webm... |
|
|
113
|
-
| Archives | zip, rar, 7z, tar, gz... |
|
|
114
|
-
| Code | js, ts, py, java, cpp, go, rs... |
|
|
115
|
-
| Config | json, yaml, yml, toml, ini, env... |
|
|
116
|
-
| Fonts | ttf, otf, woff, woff2... |
|
|
117
|
-
| Data | db, sqlite, parquet, hdf5... |
|
|
118
|
-
| Executables | exe, msi, app, apk, deb... |
|
|
119
|
-
| Design | fig, sketch, blend, stl, dwg... |
|
|
120
|
-
| Books | epub, mobi, azw, djvu, cbz... |
|
|
72
|
+
## Security
|
|
121
73
|
|
|
122
|
-
|
|
74
|
+
- All processing is **100% local** — no data leaves your machine
|
|
75
|
+
- Path traversal protection on all operations
|
|
76
|
+
- System directory safeguards (won't touch OS files)
|
|
77
|
+
- Zero runtime dependencies
|
|
123
78
|
|
|
124
|
-
##
|
|
79
|
+
## License
|
|
125
80
|
|
|
126
|
-
|
|
127
|
-
- **System file guards** — won't touch OS-critical files
|
|
128
|
-
- **Rate limiting** — prevents runaway operations
|
|
129
|
-
- **Rollback journal** — every move is logged for safe undo
|
|
130
|
-
- **Content Security Policy** — hardened Electron with CSP headers
|
|
131
|
-
- **No remote code execution** — fully local, no external API calls
|
|
132
|
-
|
|
133
|
-
## 🏗 Architecture
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
filemayor/
|
|
137
|
-
├── cli/ # CLI + Core Engine
|
|
138
|
-
│ ├── index.js # CLI entry point (7 subcommands)
|
|
139
|
-
│ └── core/ # Platform-agnostic engine
|
|
140
|
-
│ ├── scanner.js # Recursive directory scanner
|
|
141
|
-
│ ├── organizer.js # File organization + rollback
|
|
142
|
-
│ ├── cleaner.js # Junk detection + deletion
|
|
143
|
-
│ ├── watcher.js # Real-time file watcher
|
|
144
|
-
│ ├── config.js # YAML config parser
|
|
145
|
-
│ ├── reporter.js # Multi-format output
|
|
146
|
-
│ ├── categories.js # Extension → category mapping
|
|
147
|
-
│ └── security.js # Path guards + sanitization
|
|
148
|
-
├── electron/ # Desktop app (Electron)
|
|
149
|
-
│ ├── main.js # Main process
|
|
150
|
-
│ └── preload.js # IPC bridge
|
|
151
|
-
├── src/ # React frontend
|
|
152
|
-
│ ├── App.tsx # Main app
|
|
153
|
-
│ ├── views/ # UI views
|
|
154
|
-
│ └── locales/ # i18n (10 languages)
|
|
155
|
-
└── public/ # Static assets + PWA
|
|
156
|
-
```
|
|
81
|
+
Proprietary — see [LICENSE](LICENSE) for details.
|
|
157
82
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| Platform | Method |
|
|
161
|
-
|----------|--------|
|
|
162
|
-
| **Terminal** | `npm install -g filemayor` |
|
|
163
|
-
| **Windows** | Download from GitHub Releases |
|
|
164
|
-
| **macOS** | Download .dmg from Releases |
|
|
165
|
-
| **Linux** | AppImage or .deb from Releases |
|
|
166
|
-
| **Browser** | PWA at filemayor.app |
|
|
167
|
-
| **Servers** | `npm install -g filemayor` + cron/systemd |
|
|
168
|
-
|
|
169
|
-
## 🤝 Contributing
|
|
170
|
-
|
|
171
|
-
1. Fork the repository
|
|
172
|
-
2. Create a feature branch: `git checkout -b feature/amazing-feature`
|
|
173
|
-
3. Commit changes: `git commit -m 'Add amazing feature'`
|
|
174
|
-
4. Push: `git push origin feature/amazing-feature`
|
|
175
|
-
5. Open a Pull Request
|
|
83
|
+
---
|
|
176
84
|
|
|
177
|
-
|
|
85
|
+
<div align="center">
|
|
178
86
|
|
|
179
|
-
|
|
87
|
+
Created by **Lehlohonolo Goodwill Nchefu (Chevza)**
|
|
180
88
|
|
|
181
|
-
|
|
89
|
+
[GitHub](https://github.com/Hrypopo) · [npm](https://www.npmjs.com/package/filemayor)
|
|
182
90
|
|
|
183
|
-
<div align="center">
|
|
184
|
-
<strong>Created by Lehlohonolo Goodwill Nchefu (Chevza)</strong>
|
|
185
|
-
<br>
|
|
186
|
-
<a href="https://github.com/Hrypopo">github.com/Hrypopo</a> · <a href="https://filemayor.app">filemayor.app</a>
|
|
187
91
|
</div>
|
|
188
|
-
]]>
|