[slbackup-commit] CVS update: slbackup/src slbackup-cron

werner-guest@alioth.debian.org werner-guest@alioth.debian.org
Sun, 28 Nov 2004 09:16:27 -0700


  User: werner-guest
  Date: 04/11/28 09:16:27

  Modified:    src      slbackup-cron
  Log:
  started pre- and post-scripthandling
  
  Revision  Changes    Path
  1.10      +38 -1     slbackup/src/slbackup-cron
  
  Index: slbackup-cron
  ===================================================================
  RCS file: /cvsroot/slbackup/slbackup/src/slbackup-cron,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- slbackup-cron	3 Nov 2004 17:34:53 -0000	1.9
  +++ slbackup-cron	28 Nov 2004 16:16:26 -0000	1.10
  @@ -291,6 +291,43 @@
   }
   
   
  +# subroutine that runs scripts in a directory which is executable
  +# returns:
  +#  0: successfully executed all scripts in directory
  +#  1: failed reading $dir
  +#  2: one or more of the script failed while executing
  +sub run_scripts {
  +    my ($dir) = @_;
  +
  +    # check that $dir is a directory
  +    if ( ! -d $dir || ! -r $dir ) {
  +	logger ("Failed reading files in script-directory $dir");
  +	return 1;
  +    }
  +
  +    # find all executables in $dir
  +    my @scripts;
  +    open (FILELIST, `ls $dir`);
  +    while (<FILELIST>) {
  +	if ( -x $dir/$_ ) {
  +	    push @scripts, "$dir/$_";
  +	}
  +    }
  +    close (FILELIST);
  +    
  +    # execute @scripts
  +    my $subretval = 0;
  +    my $script;
  +    foreach $script (sort @scripts) {
  +	my $output = `$script 2>&1`;
  +	my $retval = ! $?;
  +	print "script : $script";
  +	print "retval : $retval";
  +	print "output : $output";
  +    }
  +
  +    return $subretval;
  +}
   
   1;