| Crates.io | phorg |
| lib.rs | phorg |
| version | 0.17.11 |
| created_at | 2024-07-02 19:54:37.436067+00 |
| updated_at | 2024-11-18 16:58:04.336979+00 |
| description | Idempotent photo/video file organizer |
| homepage | |
| repository | https://github.com/xandkar/phorg |
| max_upload_size | |
| id | 1289866 |
| size | 121,043 |
Idempotent photo/video file organizer.
Given a <src> and <dst> directories:
<src><dst>/{<img>,<vid>}/<year>/<month>/<day>/<date>--<time>--<digest>[.<ext>]
where:
<img> and <vid> default to "img" and "vid", respectively, and are
customizable via CLIDateTimeOriginalCreationDateDateTimeCreatedCreateDateDateCreatedDatecreateTrackCreateDate<day> directory and (manually) move the media files into
them, these subdirectories will then be preserved on subsequent
reprocessings, i.e. when this <dst> is later used as <src>(note the semantic subdirectory on 2020-11-29)
$ phorg /mnt/usb-drive $dst move
$ cd $dst
$ tree .
.
├── img
│ ├── 2020
│ │ ├── 11
│ │ │ ├── 29
│ │ │ │ └── Hike on Suffern-Bear Mountain Trail
│ │ │ │ ├── 2020-11-29--15:23:10--crc32:c7d15ddf.heic
│ │ │ │ ├── 2020-11-29--15:29:40--crc32:b4f4e4e0.heic
│ │ │ │ ├── 2020-11-29--15:30:07--crc32:3b5aa617.heic
│ │ │ │ └── 2020-11-29--15:38:30--crc32:514c9b0c.heic
│ │ │ └── 30
│ │ │ ├── 2020-11-30--08:20:00--crc32:08a5aa4a.heic
│ │ │ ├── 2020-11-30--08:23:41--crc32:bba07552.heic
│ │ │ ├── 2020-11-30--08:24:24--crc32:94c0f155.heic
1.75.0+ toolchain is installed: https://www.rust-lang.org/tools/installcargo install phorg~/.cargo/bin/ is in your PATHphorg helpOnly the Rust tools mentioned above, everything else will be handled by cargo.
exiftool, which is used as a fallback whenever we fail to extract the needed
metadata ourselves. This fallback can be disabled via CLI.
Absence of exiftool in PATH will cause errors which will be logged, but
will not disrupt execution and the files we could not read enough data
about will just be skipped.