The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use strict;
use warnings;
use FindBin;
use Games::Lacuna::Client::Governor;
use Games::Lacuna::Client;
use YAML::Any;

# NOTE: If you are not already running the governor, running this script can be very expensive in terms
# of RPC calls, as it will have to pull buildings stats for every building.  Once this is done, it will
# be cached for cache_duration, but the initial startup cost is high.

$| = 1;

my $client_config   = '/path/to/your/config_file';

unless ( $client_config and -e $client_config ) {
  $client_config = eval{
    require File::HomeDir;
    require File::Spec;
    my $dist = File::HomeDir->my_dist_config('Games-Lacuna-Client');
    File::Spec->catfile(
      $dist,
      'login.yml'
    ) if $dist;
  };
  unless ( $client_config and -e $client_config ) {
    die "Did not provide a config file";
  }
}

my $client = Games::Lacuna::Client->new( cfg_file => $client_config );

$Games::Lacuna::Client::PrettyPrint::ansi_color = 1;
my $governor = Games::Lacuna::Client::Governor->new( $client, {
    cache_dir => '/your/governor/cache/dir', # You will want to specify this.
    cache_duration => 86400,
    colony => { _default_ => { priorities => [] }, },
    verbosity => { summary => 1, production => 1 }
});

my $arg = shift @ARGV;
$governor->run();