response
[ikiwiki.git] / doc / bugs / filecheck_failing_to_find_files.mdwn
1 Using the attachment plugin, when filecheck was checking the mime-type of the attachment before allowing the attachment to be removed, it was returning with an error saying that the mime-type of the file was "unknown" (when the mime-type definitely was known!)
2
3 It turns out that the filecheck plugin couldn't find the file, because it was merely using the $pagesources hash, rather than finding the absolute path of the file in question.
4
5 > I don't understand why the file was not in `%pagesources`. Do you?
6 > --[[Joey]] 
7
8 The following patch fixes the problem:
9
10         diff --git a/IkiWiki/Plugin/filecheck.pm b/IkiWiki/Plugin/filecheck.pm
11         index 01d4909..1cec0cf 100644
12         --- a/IkiWiki/Plugin/filecheck.pm
13         +++ b/IkiWiki/Plugin/filecheck.pm
14         @@ -118,6 +118,10 @@ sub match_mimetype ($$;@) {
15                 if (! defined $file) {
16                         return IkiWiki::ErrorReason->new("no file specified");
17                 }
18         +       if (! -e $file) {
19         +           # get the absolute path of the file if you can't find it
20         +           $file = IkiWiki::srcfile($file);
21         +       }
22          
23                 # Use ::magic to get the mime type, the idea is to only trust
24                 # data obtained by examining the actual file contents.