Mailinglist Archive: opensuse-commit (938 mails)

< Previous Next >
commit iwatch for openSUSE:Factory
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Tue, 21 Sep 2010 12:40:30 +0200
  • Message-id: <20100921104031.208E0202B1@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package iwatch for openSUSE:Factory
checked in at Tue Sep 21 12:40:30 CEST 2010.



--------
--- iwatch/iwatch.changes 2007-03-22 22:35:34.000000000 +0100
+++ iwatch/iwatch.changes 2010-09-19 11:00:56.000000000 +0200
@@ -1,0 +2,17 @@
+Sun Sep 19 10:56:09 CEST 2010 - vuntz@xxxxxxxxxxxx
+
+- Update to version 0.2.2:
+ + Fix the bug where the file being watched contains one of the
+ formats available for substitution.
+ + Watch the renamed/moved directory properly. In the previous
+ version, after a directory was moved/renamed, iwatch used the
+ old name if an event occurs.
+ + Fix unnecessary watching of create event. In the previous
+ version, create event was watched although it is not specified.
+ + Add a functionality to specify the charset in command line mode
+ (using option -C charset) and in daemon mode (as attribute in
+ config tag)
+ + Add a functionality to reload the configuration file using the
+ SIGHUP signal.
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
iwatch-0.2.1.tar.bz2

New:
----
iwatch-0.2.2.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ iwatch.spec ++++++
--- /var/tmp/diff_new_pack.vnF8VF/_old 2010-09-21 12:35:47.000000000 +0200
+++ /var/tmp/diff_new_pack.vnF8VF/_new 2010-09-21 12:35:47.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package iwatch (Version 0.2.1)
+# spec file for package iwatch (Version 0.2.2)
#
-# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,9 +20,9 @@

Name: iwatch
Summary: iWatch is a realtime filesystem monitoring program.
-Version: 0.2.1
-Release: 97
-License: GPL v2 or later
+Version: 0.2.2
+Release: 1
+License: GPLv2+
Group: Productivity/Security
Requires: perl-Linux-Inotify2 perl-Event perl-Mail-Sendmail
perl-XML-LibXML perl-XML-SimpleObject-LibXML
Url: http://iwatch.sourceforge.net
@@ -58,23 +58,17 @@

- print time stamp

-
-
-Authors:
---------
- Cahya Wirawan <cahya@xxxxxx>
-
%prep
-%setup -q
+%setup -q -n %{name}

%build

%install
-install -d %buildroot/etc
-install -p iwatch.xml %buildroot/etc/iwatch.xml
-install -p iwatch.dtd %buildroot/etc/iwatch.dtd
-install -d %buildroot/usr/bin
-install -p iwatch %buildroot/usr/bin/iwatch
+install -d %buildroot%{_sysconfdir}
+install -p iwatch.xml %buildroot%{_sysconfdir}/iwatch.xml
+install -p iwatch.dtd %buildroot%{_sysconfdir}/iwatch.dtd
+install -d %buildroot%{_bindir}
+install -p iwatch %buildroot%{_bindir}/iwatch

%clean
rm -rf $RPM_BUILD_ROOT
@@ -82,8 +76,8 @@
%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING README iwatch.xml.example
-/etc/iwatch.xml
-/etc/iwatch.dtd
-/usr/bin/iwatch
+%{_sysconfdir}/iwatch.xml
+%{_sysconfdir}/iwatch.dtd
+%{_bindir}/iwatch

%changelog

++++++ iwatch-0.2.1.tar.bz2 -> iwatch-0.2.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iwatch-0.2.1/ChangeLog new/iwatch/ChangeLog
--- old/iwatch-0.2.1/ChangeLog 2007-03-12 04:00:39.000000000 +0100
+++ new/iwatch/ChangeLog 2009-11-14 01:19:45.000000000 +0100
@@ -1,5 +1,18 @@
iWatch: Realtime filesystem monitor

+version 0.2.2 (8. November 2009)
+* Changes/New Features:
+ - Fix the bug where the file being watched contains one of the formats
+ available for substitution (thanks to Hanno Hecker for the patch).
+ - Watch the renamed/moved directory properly. In the previous version,
+ after a directory was moved/renamed, iwatch used the old name if
+ an event occurs.
+ - Fix unnecessary watching of create event. In the previous version,
+ create event was watched although it is not specified.
+ - Add a functionality to specify the charset in command line mode
+ (using option -C charset) and in daemon mode (as attribute in config tag)
+ - Add a functionality to reload the configuration file using the SIGHUP
signal.
+
version 0.2.1 (12. March 2007)
* Changes/New Features:
- Option -X was added. It is exception with regex string.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iwatch-0.2.1/README new/iwatch/README
--- old/iwatch-0.2.1/README 2007-03-11 19:06:14.000000000 +0100
+++ new/iwatch/README 2009-11-14 01:19:45.000000000 +0100
@@ -32,6 +32,8 @@
But you can specify any possible events, like access, attrib, modify
all_events and default.

+Since version 0.2.2 we can specify a charset in command line or
+in xml file. The iwatch daemon can be reloaded using sighup signal.

How To Use:

@@ -45,7 +47,7 @@
-v Verbose mode.

In the command line mode iWatch has following options:
-Usage: iwatch [-c command] [-e event[,event[,..]]] [-h|--help] [-m <email
address>]
+Usage: iwatch [-c command] [-C charset] [-e event[,event[,..]]] [-h|--help]
[-m <email address>]
[-r] [-r] [-s <on|off>] [-t filter] [-v] [--version] [-x exception]
[-X <regex string as exception>] <target>

@@ -59,6 +61,8 @@
%F The old filename in case moved_to event
%p Program name (iWatch)
%v Version number
+ -C charset
+ Specify the charset (default is utf-8)
-e event[,event[,..]]
Specify a list of events you want to watch. Following are the possible
events you can use:
access : file was accessed
@@ -158,6 +162,9 @@
following DTD :

<!ELEMENT config (guard,watchlist+)>
+<!ATTLIST config
+ charset CDATA "utf-8"
+>
<!ELEMENT guard (#PCDATA)>
<!ATTLIST guard
email CDATA #REQUIRED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iwatch-0.2.1/iwatch new/iwatch/iwatch
--- old/iwatch-0.2.1/iwatch 2007-03-12 03:46:58.000000000 +0100
+++ new/iwatch/iwatch 2009-11-14 01:19:45.000000000 +0100
@@ -21,20 +21,19 @@
use Sys::Syslog;

my $PROGRAM = "iWatch";
-my $VERSION = "0.2.1";
+my $VERSION = "0.2.2";
my $VERBOSE = 0;
my $CONFIGFILE = "/etc/iwatch.xml";
my $PIDFILE = "/var/run/iwatch.pid";
+my $CHARSET = "utf-8";
my $xmlobj;
-my %WatchList;
-my %Mail;
-my %Events;
+my %iwatch;
sub Usage;
sub wanted;
sub mywatch;
sub pathwatch;
sub getMask;
-sub stringf;
+sub stringf($%);
$Getopt::Std::STANDARD_HELP_VERSION = 1;

my %options=();
@@ -42,16 +41,16 @@
'p' => sub { "$PROGRAM" },
'v' => sub { "$VERSION" },
'f' => sub {
- $Events{'Filename'} =~ s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'" \\])/\\$1/g;
- "$Events{'Filename'}";
+ $iwatch{'events'}{'Filename'} =~ s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'"
\\])/\\$1/g;
+ "$iwatch{'events'}{'Filename'}";
},
'F' => sub {
- return if($Events{'Name'} !~ /MOVED_TO/ );
- $Events{'OldFilename'} =~ s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'" \\])/\\$1/g;
- "$Events{'OldFilename'}";
+ return if($iwatch{'events'}{'Name'} !~ /MOVED_TO/ );
+ $iwatch{'events'}{'OldFilename'} =~ s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'"
\\])/\\$1/g;
+ "$iwatch{'events'}{'OldFilename'}";
},
- 'e' => sub { "$Events{'Name'}"; },
- 'c' => sub { "$Events{'Cookie'}"; },
+ 'e' => sub { "$iwatch{'events'}{'Name'}"; },
+ 'c' => sub { "$iwatch{'events'}{'Cookie'}"; },
);
my %InotifyEvents = (
'access' => IN_ACCESS,
@@ -81,7 +80,7 @@
$InotifyEventNames{$InotifyEvents{$EventName}} = "IN_\U$EventName";
}

-my $opt = getopts("vdf:p:c:e:hm:rst:w:x:X:",\%options);
+my $opt = getopts("vdf:p:c:C:e:hm:rst:w:x:X:",\%options);

if(defined $options{h} || $opt == 0) {
Usage();
@@ -101,7 +100,7 @@
$ENV{PATH} = "/bin:/usr/bin:/usr/sbin";

if((defined $options{d} || defined $options{f} || defined $options{p}) &&
- (-e $ARGV[0] || defined $options{c} || defined $options{e} || defined
$options{m}
+ (-e $ARGV[0] || defined $options{c} || defined $options{C} || defined
$options{e} || defined $options{m}
|| defined $options{r} || defined $options{s} || defined $options{t} ||
defined $options{w} || defined $options{x} | defined $options{X})) {
print STDERR "Options [d|f|p] and [c|e|m|r|s|w|x] are mutually exlusive,
you can't mix it!\n";
Usage();
@@ -111,7 +110,7 @@
if(defined $options{w} || -e $ARGV[0]) {
$VERBOSE += 1;
my $user = (getpwuid($>))[0];
- my $xmlstr = "<config>\n";
+ my $xmlstr = "<config charset=\"" . ((defined $options{C}) ? $options{C} :
$CHARSET) . "\">\n";
$xmlstr .= " <guard email=\"" . "$user\@localhost\"/>\n";
$xmlstr .= " <watchlist>\n";
$xmlstr .= " <contactpoint email=\"" . ((defined $options{m})?
$options{m} :
@@ -136,21 +135,7 @@
$xmlobj = new XML::SimpleObject::LibXML (XML => "$xmlstr");
}
else {
- if(! -f $CONFIGFILE) {
- Usage();
- exit 1;
- }
- my $parser = new XML::LibXML;
- open(CF,"<$CONFIGFILE");
- if(<CF> =~ /^<\?xml/) {
- $parser->validation(1);
- }
- else {
- print STDERR "Please use DTD for xml validation!\n";
- $parser->validation(0);
- }
- close(CF);
- $xmlobj = new XML::SimpleObject::LibXML ($parser->parse_file("$CONFIGFILE"));
+ $xmlobj = getXmlObject($CONFIGFILE);
}

if(defined $options{d}) {
@@ -174,48 +159,85 @@
}

my $inotify = new Linux::Inotify2;
+
+Event->signal (signal => 'HUP', cb => sub {
+ my $xmlobj = getXmlObject($CONFIGFILE);
+ while(my ($key, $watch) = each (%{$inotify->{'w'}}))
+ {
+ $watch->cancel;
+ }
+ %iwatch = xmlDispatch($xmlobj);
+})
+ if(!(defined $options{w} || -e $ARGV[0]));
+
+%iwatch = xmlDispatch($xmlobj);
Event->io (fd => $inotify->fileno, poll => 'r', cb => sub { $inotify->poll });
+Event::loop;

-foreach my $watchlist ($xmlobj->child("config")->children("watchlist")) {
- foreach my $path ($watchlist->children("path")) {
- next if($path->attribute("type") ne "exception" &&
- $path->attribute("type") ne "regexception");
- if(-d $path->value) { $_ = $path->value; s/(.+)\/$/$1/; $path->value($_);}
- $WatchList{$path->attribute("type")}{$path->value}{"type"} =
$path->attribute("type");
+sub getXmlObject {
+ my ($configFile) = @_;
+ if(! -f $configFile) {
+ Usage();
+ exit 1;
}
+ my $parser = new XML::LibXML;
+ open(CF,"<$configFile");
+ if(<CF> =~ /^<\?xml/) {
+ $parser->validation(1);
+ }
+ else {
+ print STDERR "Please use DTD for xml validation!\n";
+ $parser->validation(0);
+ }
+ close(CF);
+ my $xmlobj = new XML::SimpleObject::LibXML
($parser->parse_file("$configFile"));
+ return $xmlobj;
}

-foreach my $watchlist ($xmlobj->child("config")->children("watchlist")) {
- foreach my $path ($watchlist->children("path")) {
- next if($path->attribute("type") eq "exception" ||
- $path->attribute("type") eq "regexception");
- if(-d $path->value) { $_ = $path->value; s/(.+)\/$/$1/; $path->value($_);}
- $WatchList{$path->attribute("type")}{$path->value}{"contactpoint"} =
- $watchlist->child("contactpoint")->attribute("email")
if(defined($watchlist->child("contactpoint")));
- $WatchList{$path->attribute("type")}{$path->value}{"exec"} =
$path->attribute("exec") if(defined($path->attribute("exec")));
- $WatchList{$path->attribute("type")}{$path->value}{"alert"} =
- (defined($path->attribute("alert")) && $path->attribute("alert") eq
"off") ? 0:1;
- $WatchList{$path->attribute("type")}{$path->value}{"type"} =
$path->attribute("type");
- $WatchList{$path->attribute("type")}{$path->value}{"syslog"} =
- (defined($path->attribute("syslog")) && $path->attribute("syslog") eq
"on") ? 1:0;
- $WatchList{$path->attribute("type")}{$path->value}{"filter"} =
$path->attribute("filter");
-
- our $mask;
- if(!defined($path->attribute("events"))) {
- $mask = $InotifyEvents{'default'};
- }
- else {
- $mask = getMask($path->attribute("events"));
- $mask = $mask | $InotifyEvents{'create'} if($path->attribute("type") eq
"recursive");
+sub xmlDispatch {
+ my ($xmlobj) = @_;
+ my %iwatch;
+ my %WatchList;
+ my %Mail;
+ $iwatch{"charset"} = $xmlobj->child("config")->attribute("charset");
+ foreach my $watchlist ($xmlobj->child("config")->children("watchlist")) {
+ foreach my $path ($watchlist->children("path")) {
+ next if($path->attribute("type") ne "exception" &&
+ $path->attribute("type") ne "regexception");
+ if(-d $path->value) { $_ = $path->value; s/(.+)\/$/$1/;
$path->value($_);}
+ $WatchList{$path->attribute("type")}{$path->value}{"type"} =
$path->attribute("type");
}
- $WatchList{$path->attribute("type")}{$path->value}{"mask"} = $mask;
- pathwatch($path->attribute("type"),$path->value);
}
-}
-
-$Mail{From} = $xmlobj->child("config")->child("guard")->attribute("email");

-Event::loop;
+ foreach my $watchlist ($xmlobj->child("config")->children("watchlist")) {
+ foreach my $path ($watchlist->children("path")) {
+ next if($path->attribute("type") eq "exception" ||
+ $path->attribute("type") eq "regexception");
+ if(-d $path->value) { $_ = $path->value; s/(.+)\/$/$1/;
$path->value($_);}
+ $WatchList{$path->attribute("type")}{$path->value}{"contactpoint"} =
+ $watchlist->child("contactpoint")->attribute("email")
if(defined($watchlist->child("contactpoint")));
+ $WatchList{$path->attribute("type")}{$path->value}{"exec"} =
$path->attribute("exec") if(defined($path->attribute("exec")));
+ $WatchList{$path->attribute("type")}{$path->value}{"alert"} =
+ (defined($path->attribute("alert")) && $path->attribute("alert") eq
"off") ? 0:1;
+ $WatchList{$path->attribute("type")}{$path->value}{"type"} =
$path->attribute("type");
+ $WatchList{$path->attribute("type")}{$path->value}{"syslog"} =
+ (defined($path->attribute("syslog")) && $path->attribute("syslog") eq
"on") ? 1:0;
+ $WatchList{$path->attribute("type")}{$path->value}{"filter"} =
$path->attribute("filter");
+
+ our $mask;
+ $mask = (defined($path->attribute("events")))?
getMask($path->attribute("events")) : $InotifyEvents{'default'};
+ $WatchList{$path->attribute("type")}{$path->value}{"mask"} = $mask;
+ $mask |= $InotifyEvents{'create'} if($path->attribute("type") eq
"recursive") . "\n";
+ pathwatch($path->attribute("type"), $path->value, %WatchList);
+ }
+ }
+ $Mail{From} = $xmlobj->child("config")->child("guard")->attribute("email");
+ $Mail{'Content-Type'} = "text/plain; charset=$iwatch{charset}"
+ if(defined $iwatch{"charset"});
+ %{$iwatch{"mail"}} = %Mail;
+ %{$iwatch{"watchlist"}} = %WatchList;
+ return %iwatch;
+}

sub getMask {
my ($events) = @_;
@@ -231,7 +253,7 @@
sub pathwatch {
our $mask;
my $key;
- my ($mode,$path) = @_;
+ my ($mode, $path, %WatchList) = @_;
if(-e "$path") {
return if(defined $WatchList{"exception"}{$path});
foreach $key (keys %{$WatchList{"exception"}}) {
@@ -249,7 +271,8 @@
if(!$inotify->watch ("$path", $mask, \&mywatch));
}
elsif($mode eq "recursive") {
- File::Find::find({wanted => \&wanted, "no_chdir" => 1}, "$path");
+ #File::Find::find({wanted => \&wanted, "no_chdir" => 1}, "$path");
+ File::Find::find({wanted => sub{wanted(%WatchList);}, "no_chdir" => 1},
"$path");
}
}
}
@@ -257,6 +280,7 @@
sub wanted {
our $mask;
my $key;
+ my (%WatchList) = @_;
if(-d $File::Find::name) {
return if(defined $WatchList{"exception"}{$File::Find::name});
foreach $key (keys %{$WatchList{"exception"}}) {
@@ -276,7 +300,7 @@
}

sub getWatchList {
- my ($path,$filename) = @_;
+ my ($path, $filename, %WatchList) = @_;
my $rv;
my $key;
return undef if(defined $WatchList{"exception"}{$path});
@@ -309,27 +333,29 @@
my $Message;
my $localMessage;
my $mask;
- my $Filename = $Events{'Filename'} = $e->fullname;
+ my %WatchList = %{$iwatch{"watchlist"}};
+ my %Mail= %{$iwatch{"mail"}};
+ my $Filename = $iwatch{'events'}{'Filename'} = $e->fullname;
return if(defined $WatchList{"exception"}{$Filename});
- my $Path = getWatchList($e->{w}->{name},$e->{name});
+ my $Path = getWatchList($e->{w}->{name}, $e->{name}, %WatchList);
return if(!defined($Path));

my $now = POSIX::strftime "%e/%b/%Y %H:%M:%S", localtime;
- $Events{'Name'} = "";
+ $iwatch{'events'}{'Name'} = "";
$mask = $e->mask;
if($e->IN_ISDIR) {
$mask ^= IN_ISDIR;
- $Events{'Name'} = "IN_ISDIR,";
+ $iwatch{'events'}{'Name'} = "IN_ISDIR,";
}
if($e->IN_ONESHOT) {
$mask ^= IN_ISDIR;
- $Events{'Name'} = "IN_ONESHOT,";
+ $iwatch{'events'}{'Name'} = "IN_ONESHOT,";
}
- $Events{'Name'} .= $InotifyEventNames{$mask};
- $Events{'Cookie'} = $e->{cookie};
- $Message = "$Events{'Name'} $Filename";
+ $iwatch{'events'}{'Name'} .= $InotifyEventNames{$mask};
+ $iwatch{'events'}{'Cookie'} = $e->{cookie};
+ $Message = "$iwatch{'events'}{'Name'} $Filename";
$Mail{Subject} = "[$PROGRAM] " . hostname() . ": $Message";
- if($VERBOSE>0) {
+ if($VERBOSE>0 && $Path->{'mask'} & $mask) {
print "[$now] $Message\n";
syslog("info","$Message") if($Path->{'syslog'});
}
@@ -337,9 +363,10 @@
print STDERR "[$now] * Directory $Filename is watched\n" if($VERBOSE>0);
syslog("info","* Directory $Filename is watched") if($Path->{'syslog'});
print STDERR "Can't watch $Filename: $!\n"
- if(!$inotify->watch ($Filename, $Path->{'mask'}, \&mywatch));
+ if(!$inotify->watch ($Filename, $Path->{'mask'} |
$InotifyEvents{'create'}, \&mywatch));
}
- elsif($e->IN_CLOSE_WRITE && -f $Filename) {
+ return if(!($Path->{'mask'} & $mask));
+ if($e->IN_CLOSE_WRITE && -f $Filename) {
$localMessage = "* $Filename is closed\n";
$Message = "$Message\n$localMessage";
$Mail{Subject} = "[$PROGRAM] " . hostname() . ": $Filename is changed";
@@ -355,17 +382,22 @@
}
elsif($e->IN_MOVED_FROM || $e->IN_MOVED_TO) {
if($e->IN_MOVED_FROM) {
- $Events{$e->{cookie}} = "$Filename";
+ $iwatch{'events'}{$e->{cookie}} = "$Filename";
}
elsif($e->IN_MOVED_TO) {
- my $FileMove = $Events{$e->{cookie}} . ":$Filename";
- $localMessage = "* $Events{$e->{cookie}} is moved to $Filename\n";
+ my $FileMove = $iwatch{'events'}{$e->{cookie}} . ":$Filename";
+ $localMessage = "* $iwatch{'events'}{$e->{cookie}} is moved to
$Filename\n";
$Message = "$Message\n$localMessage";
- $Mail{Subject} = "[$PROGRAM] " . hostname() . ": $Events{$e->{cookie}}
is moved to $Filename";
+ $Mail{Subject} = "[$PROGRAM] " . hostname() . ":
$iwatch{'events'}{$e->{cookie}} is moved to $Filename";
print STDERR "[$now] $localMessage" if($VERBOSE>0);
syslog("info","$localMessage") if($Path->{'syslog'});
- $Events{'OldFilename'} = $Events{$e->{cookie}};
- undef $Events{$e->{cookie}};
+ $iwatch{'events'}{'OldFilename'} = $iwatch{'events'}{$e->{cookie}};
+ undef $iwatch{'events'}{$e->{cookie}};
+ if($e->IN_ISDIR) {
+ our $mask;
+ $mask = ($Path->{'type'} eq "recursive")? $Path->{'mask'} |
$InotifyEvents{'create'} : $Path->{'mask'};
+ pathwatch($Path->{'type'}, $Filename, %WatchList);
+ }
}
}
elsif($e->IN_DELETE_SELF && -f $Filename && defined $WatchList{$Filename}) {
@@ -395,17 +427,18 @@
}
}

-sub stringf() {
- my $ind;
- my ($string,%format) = @_;
- foreach my $key (keys %format) {
- $ind = index $string,"%$key";
- next if($ind == -1);
- substr($string,$ind,2) = &{$format{$key}};
- $string = stringf($string,%format);
- }
+sub stringf($%) {
+ my ($string, %format) = @_;
+ my $re = join("|", map { "%".quotemeta } keys(%format));
+ $string =~ s/$re/_stringf($&, \%format)/ge;
$string;
}
+
+sub _stringf {
+ my ($s,$f) = @_;
+ $s =~ s/^\%//;
+ &{$f->{$s}};
+}

sub Usage {
VERSION_MESSAGE();
@@ -430,7 +463,7 @@
-v Verbose mode.

And in the command line mode:
-Usage: iwatch [-c command] [-e event[,event[,..]]] [-h|--help] [-m <email
address>]
+Usage: iwatch [-c command] [-C charset] [-e event[,event[,..]]] [-h|--help]
[-m <email address>]
[-r] [-s <on|off>] [-t <filter string>] [-v] [--version] [-x
exception]
[-X <regex string as exception>] <target>

@@ -444,6 +477,8 @@
%F The old filename in case moved_to event.
%p Program name (iWatch)
%v Version number
+ -C charset
+ Specify the charset (default is utf-8)
-e event[,event[,..]]
Specify a list of events you want to watch. Following are the possible
events you can use:
access : file was accessed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iwatch-0.2.1/iwatch.dtd new/iwatch/iwatch.dtd
--- old/iwatch-0.2.1/iwatch.dtd 2007-03-03 00:20:15.000000000 +0100
+++ new/iwatch/iwatch.dtd 2009-09-04 12:54:45.000000000 +0200
@@ -1,4 +1,7 @@
<!ELEMENT config (guard,watchlist+)>
+<!ATTLIST config
+ charset CDATA "utf-8"
+>
<!ELEMENT guard (#PCDATA)>
<!ATTLIST guard
email CDATA #REQUIRED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iwatch-0.2.1/iwatch.xml new/iwatch/iwatch.xml
--- old/iwatch-0.2.1/iwatch.xml 2007-01-25 01:03:19.000000000 +0100
+++ new/iwatch/iwatch.xml 2009-09-04 12:54:45.000000000 +0200
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
<!DOCTYPE config SYSTEM "/etc/iwatch.dtd" >

-<config>
+<config charset="utf-8">
<guard email="iwatch@localhost" name="IWatch"/>
<watchlist>
<title>Operating System</title>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iwatch-0.2.1/iwatch.xml.example
new/iwatch/iwatch.xml.example
--- old/iwatch-0.2.1/iwatch.xml.example 2007-03-12 04:05:14.000000000 +0100
+++ new/iwatch/iwatch.xml.example 2009-09-04 12:54:45.000000000 +0200
@@ -12,7 +12,7 @@
Don't forget to set the correct email address here
-->

-<config>
+<config charset="utf-8">
<guard email="root@localhost" name="IWatch"/>
<watchlist>
<title>Public Website</title>


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages