Elliot Shank

NAME

TeamCity::BuildMessages - Encode and emit messages that TeamCity can interpret during a build.

VERSION

This document describes TeamCity::BuildMessages version 0.999.3.

SYNOPSIS

    use TeamCity::BuildMessages qw< :all >;

    my $escaped = teamcity_escape('stuff with weird characters');

    teamcity_emit_build_message('messageName', 'value');
    teamcity_emit_build_message(
        'messageName',
        propertyName => 'property value',
    );
    teamcity_emit_build_message('messageName', %properties);

DESCRIPTION

The code in this module is based upon the documentation at http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity.

INTERFACE

Nothing is exported by default, but you can import everything using the :all tag.

teamcity_escape($text)

Returns a version of the parameter with TeamCity escapes applied to it, e.g. \n becomes |n.

teamcity_emit_build_message($message_name, $property_value) or teamcity_emit_build_message($message_name, property1 => 'value1', property2 => 'value2', ...)

Writes a message to STDOUT in a form that TeamCity can understand. See the TeamCity documentation for valid messages.

DIAGNOSTICS

No message specified.

teamcity_emit_build_message() was called without a $message_name parameter.

No values specified.

teamcity_emit_build_message() was called without any message values.

"%s" is not a valid message name.

teamcity_emit_build_message() was called with a <$message_name> parameter that didn't consist of a letter or underscore followed by any number of alphanumerics and underscores.

Message property given without a value.

teamcity_emit_build_message() was called with an odd number of property values. If there is more than one value given, each value must have a name, e.g. this is wrong:

    teamcity_emit_build_message('message', 'one', 'two', 'three');
"%s" is not a valid property name.

teamcity_emit_build_message() was called with a property name that didn't consist of a letter or underscore followed by any number of alphanumerics and underscores.

CONFIGURATION AND ENVIRONMENT

None, currently.

DEPENDENCIES

perl 5.8.4

Readonly

AUTHOR

Elliot Shank <perl@galumph.com>

LICENSE AND COPYRIGHT

Copyright ©2008-2009, Elliot Shank <perl@galumph.com>. Some rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.

DISCLAIMER OF WARRANTY

BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENSE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.