blob: 330f96ef0944315b55533ea37dc495d1d84c520d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#!/usr/bin/perl
use warnings;
use strict;
use File::MimeInfo::Magic qw(mimetype globs);
exit 1 unless @ARGV == 2;
my $filename = $ARGV[0];
my $file = $ARGV[1];
my $type = "";
my $file_type = "";
exit 1 unless -f $file;
$type = globs($filename);
# globbing takes priority over all other
if (!$type) {
$type = mimetype($file);
if ($type eq "application/octet-stream") {
# application/octet-stream normally means the detection failed
# use the output of file in this case
$file_type = `file -b --mime-type $file`;
chomp $file_type;
$type = $file_type;
if ($type eq "text/plain") {
# detect ascii with color codes
$file_type = `file -b $file`;
chomp $file_type;
if ($file_type =~ m/ASCII text, (?:with very long lines, )?with escape sequences/) {
$type = "text/plain-ascii";
}
}
}
}
print "$type\n";
|