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 )