Fail if before or after editing or saving command exits with non-zero status
authorJamie Cameron <jcameron@webmin.com>
Sat, 27 Aug 2011 00:45:16 +0000 (17:45 -0700)
committerJamie Cameron <jcameron@webmin.com>
Sat, 27 Aug 2011 00:45:16 +0000 (17:45 -0700)
custom/lang/en
custom/save.cgi
custom/view.cgi

index 2004d51..82348d2 100644 (file)
@@ -133,6 +133,9 @@ view_ecannot=You are not allowed to edit this file
 view_title=Edit File
 view_efile=Write to $1 failed : $2
 view_header=Editing file $1
+view_ebeforeedit=Before-editing command failed : $1
+view_ebefore=Before-saving command failed : $1
+view_eafter=After-saving command failed : $1
 
 form_ecannot=You are not allowed to run this command
 form_title=Execute Command
index b7c38cb..e79b6e2 100755 (executable)
@@ -26,7 +26,8 @@ if ($edit->{'envs'} || @{$edit->{'args'}}) {
 
 # Run the before-command
 if ($edit->{'before'}) {
-       &system_logged("($edit->{'before'}) >/dev/null 2>&1 </dev/null");
+       $out = &backquote_logged("($edit->{'before'}) 2>&1 </dev/null");
+       &error(&text('view_ebefore', &html_escape($out))) if ($?);
        }
 
 # Save the file
@@ -48,7 +49,8 @@ if ($edit->{'perms'}) {
 
 # Run the after-command
 if ($edit->{'after'}) {
-       &system_logged("($edit->{'after'}) >/dev/null 2>&1 </dev/null");
+       $out = &backquote_logged("($edit->{'after'}) 2>&1 </dev/null");
+       &error(&text('view_eafter', &html_escape($out))) if ($?);
        }
 
 &webmin_log("save", "edit", $cmd->{'id'}, $edit);
index 5b7c063..54d0e44 100755 (executable)
@@ -26,7 +26,8 @@ if ($edit->{'envs'} || @{$edit->{'args'}}) {
 
 # Run any before-edit command
 if ($edit->{'beforeedit'}) {
-       &system_logged("($edit->{'beforeedit'}) >/dev/null 2>&1 </dev/null");
+       $out = &backquote_logged("($edit->{'beforeedit'}) 2>&1 </dev/null");
+       &error(&text('view_ebeforeedit', &html_escape($out))) if ($?);
        }
 
 # Show the editor form