#!/usr/local/bin/perl -w
###########################################
# tmux-setup for log4perl
# Mike Schilli, 2013 (m@perlmeister.com)
###########################################
use strict;
use Sysadm::Install qw( tap cd );
use Log::Log4perl qw(:easy);
use Getopt::Std;
sub tmux; # declare as function

my($home)   = glob "~";
my $session = "log4perl";

getopts "vk", \my %opts;

my $loglevel = $INFO;
$loglevel = $DEBUG if $opts{ v };

Log::Log4perl->easy_init( $loglevel );

if( $opts{ k } ) {
  tmux "kill-session", "-t", $session;
  exit 0;
}

tmux "source", "$home/.tmux.conf";

if( 0 == tmux "has-session", 
              "-t", $session ) {
  DEBUG "Session $session already exists";
} else {
  DEBUG "Creating session $session";
  tmux "new-session", "-s", $session, 
        "-d";
  tmux "split-window", "-h";
  tmux "split-window", "-v";
  tmux "send-keys", "-t", "$session:0.0",
  "vim -p `find . -name '*.pm' | head -2`",
    "C-m";
  tmux "send-keys", "-t", "$session:0.1", 
       "perl Makefile.PL; make test", "C-m";
  tmux "send-keys", "-t", "$session:0.2",
       "vim t/*.t", "C-m";
}

tmux "attach", "-t", $session;

###########################################
sub tmux {
###########################################
  my( $stdout, $stderr, $rc ) = 
     tap "tmux", @_;

  return $rc;
}
