1 unstable release
Uses new Rust 2024
| 0.1.0 | Feb 5, 2026 |
|---|
#237 in Video
14KB
233 lines
Extension-Focused Utilities
Two utilities for applying custom file type transformations. ecp and emv can largely be used in lieu of cp and mv, respectively. But they can also perform conversions.
With the following config file:
{
"file_formats": [
{
"name": "image",
"members": [".png", ".jpg", ".jpeg", ".webp"],
"transformations": [
["image", "magick {s} {e}"]
]
},
{
"name": "video",
"members": [".mp4", ".mov", ".avi", ".mkv"],
"transformations": [
["video", "ffmpeg -i {s} {e}"],
["image", "ffmpeg -i {s} -vf select=eq(n\\,0) -frames:v 1 -update 1 -q:v 3 {e}"]
]
}
]
}
The following command will use magick to convert image.webp -> image.png, and remove image.webp. In effect moving it:
emv image.webp image.png
And the following command will create png thumbnails for all the videos in the current directory:
ecp *.mp4 .png
Usage
ecp and emv can be used similarly to cp and mv in most respects. The following are all valid:
emv img.webp dir1, moves img.webp to dir1, no conversionemv img.webp dir1/img.png, moves img.webp to dir1/img.png, converting to img.pngemv *.webp dir1/.png, moves all .webp files to dir1, converting to .png
Configuration
Config file location: ~/.config/eutils/preferences.json (created automatically on first run)
Placeholders
{s}- source file path{e}- destination file path (with new extension)
Dependencies
The utilities themselves have no runtime dependencies, but your transformations may require external tools:
- ImageMagick (
magick) for image conversions - FFmpeg (
ffmpeg) for general media conversion
Installation
cargo install eutils
TODO
- Replicate major
cpandmvflags
License
MIT
Dependencies
~0.5–1.4MB
~30K SLoC