From d4c61b72813b880d86b316770f2e3819a6428202 Mon Sep 17 00:00:00 2001 From: joey Date: Thu, 15 Feb 2007 02:22:08 +0000 Subject: * Many changes to make ikiwiki very resistant to write failures including out of disk space situations. ikiwiki should never leave truncated files, and if the error occurs during a web-based file edit, the user will be given an opportunity to retry. Inspired by the many ways Moin Moin destroys itself when out of disk. :-) * Fix syslogging of errors. --- doc/plugins/write.mdwn | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 8630b56ff..c10d73cf9 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -287,9 +287,11 @@ the id can be controled by the user. Logs a debugging message. These are supressed unless verbose mode is turned on. -#### `error($)` +#### `error($;$)` -Aborts with an error message. +Aborts with an error message. If the second parameter is passed, it is a +function that is called after the error message is printed, to do any final +cleanup. Note that while any plugin can use this for a fatal error, plugins should try to avoid dying on bad input, as that will halt the entire wiki build @@ -359,14 +361,20 @@ in binary mode. A failure to read the file will result in it dying with an error. -#### `writefile($$$;$)` +#### `writefile($$$;$$)` Given a filename, a directory to put it in, and the file's content, writes a file. -The optional second parameter, if set to a true value, makes the file be +The optional fourth parameter, if set to a true value, makes the file be written in binary mode. +The optional fifth parameter can be used to pass a function reference that +will be called to handle writing to the file. The function will be called +and passed a file descriptor it should write to, and an error recovery +function it should call if the writing fails. (You will not normally need to +use this interface.) + A failure to write the file will result in it dying with an error. If the destination directory doesn't exist, it will first be created. -- cgit v1.2.3