diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2023-02-28 14:34:35 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2023-02-28 14:34:35 -0700 |
commit | 8f5f78f2655e91a4a9252d1cab5252c37b24b986 (patch) | |
tree | eb1c06369091f38adf7e042e6ab67468305f8991 /scripts | |
parent | 3a76873a07e0f4c5ed8dc3353c0f80b141de575f (diff) | |
download | dotfiles-8f5f78f2655e91a4a9252d1cab5252c37b24b986.tar.gz |
add rename-by-libmagic
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/media/rename-by-libmagic | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/media/rename-by-libmagic b/scripts/media/rename-by-libmagic new file mode 100755 index 00000000..fe94d50d --- /dev/null +++ b/scripts/media/rename-by-libmagic @@ -0,0 +1,23 @@ +#!/usr/bin/perl -w + +# add/fix file extensions based on MIME type as detected by libmagic + +use File::LibMagic; +use MIME::Types; +$magic = File::LibMagic->new; +$types = MIME::Types->new; + +for (@ARGV) { + open my $fh, "<$_"; + eval { + $desc = $magic->info_from_handle($fh)->{mime_type}; + @exts = $types->type($desc)->extensions; + + $ext = shift @exts; + $ext eq "jpeg" and $ext = "jpg"; + + $src = $_; + s/\.[^.]+$//; + -e "$_.$ext" or rename $src, "$_.$ext"; + }; +} |