avif-cli icon indicating copy to clipboard operation
avif-cli copied to clipboard

When using --output have option to preserve directory structure

Open pbowyer opened this issue 2 years ago • 1 comments

Thanks for writing this script!

When using

npx avif --input="/path/to/www/assets/**/*.*" --output=/path/to/www/assets-avif --verbose

It would be really nice if there was a built-in way to preserve the input directory structure in the output directory.

We don't want to save the AVIFs to the same folder as the source images as the CMS media browser will show both, but for easy try_files configuration we'd like to mirror the directory structure in the destination. Plus it keeps the folders with a manageable number of images in them.

Example:

/path/to/www/assets/images/foo/bar/baz.jpg => /path/to/www/assets-avif/images/foo/bar/baz.avif

(Having an option to append .avif would also be cool, to mirror how our bash script has been doing it. So the output file name is baz.jpg.avif. That way the try_files usage stays simple.

pbowyer avatar Mar 21 '22 16:03 pbowyer

Hi Peter, these are great ideas, very happy to accept a PR for either/both.

The use of input structure to determine output structure should probably be the default behaviour anyway, and therefore a semver major bump.

Making the use of try_files easier is a nice touch but should be opt-in, perhaps via something like an --append-extension or more explicit --try-files option or similar.

lovell avatar Mar 21 '22 21:03 lovell