App-EditorTools

 view release on metacpan or  search on metacpan

lib/App/EditorTools/Command/InstallVim.pm  view on Meta::CPAN

package App::EditorTools::Command::InstallVim;

# ABSTRACT: Installs vim bindings for App::EditorTools

use strict;
use warnings;
use parent 'App::EditorTools::CommandBase::Install';

#use App::EditorTools -command;
use File::HomeDir;
# use IPC::Cmd qw(run);

our $VERSION = '1.00';

sub command_names { 'install-vim' }

sub opt_spec {
    return (
        [ "local|l",  "Install the vim script local for the user (~/.vim/)" ],
        [ "dest|d=s", "Full path to install the vim script" ],
        [ "print|p",  "Print the vim script to STDOUT" ],
        [ "dryrun|n", "Print where the vim script would be installed" ],
        ## [ "global|g", "Install the vim script globally (/usr/share/vim)" ],
    );
}

sub validate_args {
    my ( $self, $opt, $args ) = @_;

    $self->_confirm_one_opt($opt)
      or $self->usage_error(
        "Options --local, --global, --dest and --print cannot be combined");

    if ( !$opt->{dest} ) {
        if ( $opt->{global} ) {
            $self->usage_error("--global flag is not implemented");
            # $opt->{dest} = File::Spec->catfile( $self->_get_vimruntime,
            #     qw(ftplugin perl editortools.vim) );

        } elsif ( !$opt->{print} ) {
            $opt->{dest} = File::Spec->catfile(
                File::HomeDir->my_home,
                ( $^O eq 'MSWin32' ? 'vimfiles' : '.vim' ),
                qw(ftplugin perl editortools.vim)
            );
        }
    }

    return 1;
}

sub _script { File::Spec->catfile(qw(vim editortools.vim)) }

sub _intro {
    return <<"END_INTRO";
" App::EditorTools::Command::InstallVim generated script
" Version: $VERSION
END_INTRO
}

# sub _get_vimruntime {
#     my $self = shift;
#
#     my $file = 'appeditvim.tmp';
#     my $cmd  = qq{vim -c 'redir > $file' -c 'echomsg \$VIMRUNTIME' -c q};
#
#     run( command => $cmd, verbose => 0, )
#       or $self->usage_error("Error running vim to find global path");
#     my $dest = read_file $file
#       or $self->usage_error("Unable to find global vim path");
#     unlink $file;
#
#     $dest =~ s{[\n\r]}{}mg;
#     return $dest;
# }

# Pod if we add the global option
# =item --global
# Install the vim script globally. This will put the script in
# C</usr/share/vim/vim72/ftplugin/perl/editortools.vim> or a similar location
# for your operating system.


1;

__END__



( run in 0.567 second using v1.01-cache-2.11-cpan-39bf76dae61 )