summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2023-02-28 14:34:35 -0700
committerSean Whitton <spwhitton@spwhitton.name>2023-02-28 14:34:35 -0700
commit8f5f78f2655e91a4a9252d1cab5252c37b24b986 (patch)
treeeb1c06369091f38adf7e042e6ab67468305f8991 /scripts
parent3a76873a07e0f4c5ed8dc3353c0f80b141de575f (diff)
downloaddotfiles-8f5f78f2655e91a4a9252d1cab5252c37b24b986.tar.gz
add rename-by-libmagic
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/media/rename-by-libmagic23
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";
+ };
+}