# NAME

Ukigumo::Client - Client library for Ukigumo

# SYNOPSIS

    use Ukigumo::Client;
    use Ukigumo::Client::VC::Git;
    use Ukigumo::Client::Executor::Auto;
    use Ukigumo::Client::Notify::Debug;
    use Ukigumo::Client::Notify::Ikachan;

    my $app = Ukigumo::Client->new(
        vc   => Ukigumo::Client::VC::Git->new(
            branch     => $branch,
            repository => $repo,
        ),
        executor   => Ukigumo::Client::Executor::Perl->new(),
        server_url => $server_url,
        project    => $project,
    );
    $app->push_notifier(
        Ukigumo::Client::Notify::Ikachan->new(
            url     => $ikachan_url,
            channel => $ikachan_channel,
        )
    );
    $app->run();

# DESCRIPTION

Ukigumo::Client is client library for Ukigumo.

# ATTRIBUTES

- workdir

    Working directory for the code. It's $ENV{HOME}/.ukigumo/work/$project/$branch by default.

- project

    Its' project name. This is a mandatory parameter.

- logfh

    Log file handle. It's read only parameter.

- server\_url

    URL of the Ukigumo server. It's required.

- user\_agent

    instance of [LWP::UserAgent](http://search.cpan.org/perldoc?LWP::UserAgent). It's have a default value.

- vc

    This is a version controller object. It's normally Ukigumo::Client::VC::\*. But you can write your own class.

    VC::\* objects should have a following methods:

        get_revision branch repository

- executor

    This is a test executor object. It's normally Ukigumo::Client::Executor::\*. But you can write your own class.

- notifiers

    This is a arrayref of notifier object. It's normally Ukigumo::Client::Notify::\*. But you can write your own class.

# METHODS

- $client->push\_notifier($notifier : Ukigumo::Client::Notify)

    push a notifier object to $client->notifiers.

- $client->run()

    Run a test context.

- $client->send\_to\_server($status: Int)

    Send a notification to the sever.

- $client->tee($command: Str)

    This method runs `$command` and tee the output of the STDOUT/STDERR to the logfh.

    _Return_: exit code by the `$command`.

- $client->log($message)

    Print `$message` and write to the logfh.

# AUTHOR

Tokuhiro Matsuno <tokuhirom AAJKLFJEF@ GMAIL COM>

# SEE ALSO

[Ukigumo::Server](http://search.cpan.org/perldoc?Ukigumo::Server), [Ukigumo:https://github.com/ukigumo/](Ukigumo:https://github.com/ukigumo/)

# LICENSE

Copyright (C) Tokuhiro Matsuno

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