package MyBuilder;
use base 'Module::Build';

use warnings;
use strict;

use File::Copy;
use File::Path;
use File::Spec::Functions qw'catfile';

use LWP::Simple;
use Archive::Any;

sub ACTION_code {
    my $self = shift;
    $self->dispatch("install_docx");
    $self->SUPER::ACTION_code;
}

sub ACTION_install_docx {
    my $self = shift;

    my $url = "http://downloads.sourceforge.net";
    $url   .= "/project/docx2txt/docx2txt/v1.0/docx2txt-1.0.tgz";

    my $script = catfile("script","docx2txt.pl");
    my $config = catfile("script","docx2txt.config");
    return if -f $script && -f $config;

    if (getstore($url, "docx2txt.tgz") == RC_OK) {
        my $ae = Archive::Any->new("docx2txt.tgz");
        $ae->extract;
        mkdir 'script';
        my @files = $ae->files;
        my ($file1) = grep /docx2txt.pl/, @files;
        my ($file2) = grep /docx2txt.config/, @files;
        copy($file1, $script);
        copy($file2, $config);
        my ($dir) = <docx2txt*>;
        rmtree $dir;
        unlink "docx2txt.tgz";
    } else {
        die "Can't fetch docx2txt. Check your internet connection.\n";
    }
}

1;
