path: add PathModified (= PathChanged + IN_MODIFY)

This commit is contained in:
Michal Schmidt 2011-12-03 10:22:26 +01:00
parent 4b562198c7
commit e92238567b
3 changed files with 13 additions and 7 deletions

View File

@ -113,6 +113,7 @@
<term><varname>PathExists=</varname></term> <term><varname>PathExists=</varname></term>
<term><varname>PathExistsGlob=</varname></term> <term><varname>PathExistsGlob=</varname></term>
<term><varname>PathChanged=</varname></term> <term><varname>PathChanged=</varname></term>
<term><varname>PathModified=</varname></term>
<term><varname>DirectoryNotEmpty=</varname></term> <term><varname>DirectoryNotEmpty=</varname></term>
<listitem><para>Defines paths to <listitem><para>Defines paths to
@ -129,8 +130,14 @@
specified. <varname>PathChanged=</varname> specified. <varname>PathChanged=</varname>
may be used to watch a file or may be used to watch a file or
directory and activate the configured directory and activate the configured
unit whenever it changes or is unit whenever it changes. It is not activated
modified. <varname>DirectoryNotEmpty=</varname> on every write to the watched file but it is
activated if the file which was open for writing
gets closed. <varname>PathModified=</varname>
is similar, but additionally it is activated
also on simple writes to the watched file.
<varname>DirectoryNotEmpty=</varname>
may be used to watch a directory and may be used to watch a directory and
activate the configured unit whenever activate the configured unit whenever
it contains at least one file.</para> it contains at least one file.</para>
@ -154,11 +161,7 @@
activated, then the configured unit is activated, then the configured unit is
immediately activated as immediately activated as
well. Something similar does not apply well. Something similar does not apply
to to <varname>PathChanged=</varname>.
<varname>PathChanged=</varname>. The
latter is not activated on simple
writes but only if files with were
opened for writing are closed.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>

View File

@ -44,6 +44,7 @@ int pathspec_watch(PathSpec *s, Unit *u) {
[PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB,
[PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, [PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB,
[PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO, [PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO,
[PATH_MODIFIED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO|IN_MODIFY,
[PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO
}; };
@ -713,6 +714,7 @@ static const char* const path_type_table[_PATH_TYPE_MAX] = {
[PATH_EXISTS] = "PathExists", [PATH_EXISTS] = "PathExists",
[PATH_EXISTS_GLOB] = "PathExistsGlob", [PATH_EXISTS_GLOB] = "PathExistsGlob",
[PATH_CHANGED] = "PathChanged", [PATH_CHANGED] = "PathChanged",
[PATH_MODIFIED] = "PathModified",
[PATH_DIRECTORY_NOT_EMPTY] = "DirectoryNotEmpty" [PATH_DIRECTORY_NOT_EMPTY] = "DirectoryNotEmpty"
}; };

View File

@ -41,6 +41,7 @@ typedef enum PathType {
PATH_EXISTS_GLOB, PATH_EXISTS_GLOB,
PATH_DIRECTORY_NOT_EMPTY, PATH_DIRECTORY_NOT_EMPTY,
PATH_CHANGED, PATH_CHANGED,
PATH_MODIFIED,
_PATH_TYPE_MAX, _PATH_TYPE_MAX,
_PATH_TYPE_INVALID = -1 _PATH_TYPE_INVALID = -1
} PathType; } PathType;