Conditions are nested elements of the condition, if and waitfor tasks.
The <not>
element expects exactly one other condition to be
nested into this element, negating the result of the condition. It doesn't have any
attributes and accepts all nested elements of the condition task as nested elements
as well.
The <and>
element doesn't have any attributes and accepts an
arbitrary number of conditions as nested elements. This condition is true if all of
its contained conditions are, conditions will be evaluated in the order they have
been specified in the build file.
The <and>
condition has the same shortcut semantics as the
&&
operator in some programming languages, as soon as
one of the nested conditions is false, no other condition will be evaluated.
The <or>
element doesn't have any attributes and accepts an
arbitrary number of conditions as nested elements. This condition is true if at
least one of its contained conditions is, conditions will be evaluated in the order
they have been specified in the build file.
The <or>
condition has the same shortcut semantics as the
||
operator in some programming languages, as soon as one of
the nested conditions is true, no other condition will be evaluated.
The <xor>
element performs an exclusive or on all nested elements,
similar to the ^ operator in PHP. It only evaluates to true if an odd number of nested
conditions are true. There is no shortcutting of evaluation, unlike the <and> and <or> tests.
It doesn't have any attributes and accepts all nested elements of the condition task as nested elements
as well.
Test whether the current operating system is of a given type.
Table 5.1: OS Attributes
Attribute | Description | Required |
---|---|---|
family | The name of the operating system family to expect. | Yes |
Supported values for the family attribute are:
windows (for all versions of Microsoft Windows)
mac (for all Apple Macintosh systems)
unix (for all Unix and Unix-like operating systems)
Tests whether the two given Strings are identical
Table 5.2: equals Attributes
Attribute | Description | Required |
---|---|---|
arg1 | First string to test. | Yes |
arg2 | Second string to test. | Yes |
casesensitive | Perform a case sensitive comparison. Default is true. | No |
trim | Trim whitespace from arguments before comparing them. Default is false. | No |
Compares two given versions
Table 5.3: version-compare Attributes
Attribute | Description | Required |
---|---|---|
version | The version you want to compare | Yes |
desiredVersion | The version you want to compare against | Yes |
operator | The operator to use for version comparison. Default
is >= . | No |
debug | Turns on debug mode, that echoes the comparion message. Default is false. | No |
<version-compare version="${someproperty}" desiredVersion="1.3" operator="gt" />
This condition internally uses PHP version_compare(). Operators and behavior are the same.
Condition to wait for a HTTP request to succeed.
Attributes are:
Table 5.4: http Attributes
url | The URL of the request. | Yes |
---|---|---|
errorsBeginAt | Number at which errors begin at. - Default: 400 | No |
<http url="http://url.to.test" errorsBeginAt="404" />
Condition to test for a (tcp) listener on a specified host and port.
Table 5.5: socket Attributes
server | The hostname or ip address of the server. | Yes |
---|---|---|
port | The port number of the server. | Yes |
<socket server="localhost" port="80" />
Condition returns true if selected partition has the requested space, false otherwise.
Table 5.6: hasfreespace Attributes
Attribute | Description | Required |
---|---|---|
partition | The partition/device to check. | Yes |
needed | The amount of free space required. | Yes |
<hasfreespace partition="c:" needed="10M" />
This condition internally uses PHP disk_free_space().
Test whether a given property has been set in this project.
Table 5.7: isset Attributes
Attribute | Description | Required |
---|---|---|
property | The name of the property to test. | Yes |
Tests whether a string contains another one.
Table 5.8: contains Attributes
Attribute | Description | Required |
---|---|---|
string | The string to search in. | Yes |
substring | The string to search for. | Yes |
casesensitive | Perform a case sensitive comparison. Default is true. | No |
Tests whether a string evaluates to true.
<istrue value="${someproperty}"/> <istrue value="false"/>
Tests whether a string evaluates to not true, the negation of
<istrue>
<isfalse value="${someproperty}"/> <isfalse value="false"/>
Tests whether a specified reference exists.
<referenceexists ref="${someid}"/>
This condition is identical to the Available task, all attributes and nested elements of that task are supported, the property and value attributes are redundant and will be ignored.
Test two files for matching. Nonexistence of one file results in "false", although if neither exists they are considered equal in terms of content. This test does a byte for byte comparison, so test time scales with byte size. NB: if the files are different sizes, one of them is missing or the filenames match the answer is so obvious the detailed test is omitted.
Table 5.12: filesmatch Attributes
Attribute | Description | Required |
---|---|---|
file1 | First file to test. | Yes |
file2 | Second file to test. | Yes |
<filesmatch file1="${file1}" file2="${file2}"/>