App::EditorTools::Command::InstallEmacs - Install emacs bindings for App::EditorTools


App-EditorTools documentation Contained in the App-EditorTools distribution.

Index


Code Index:

NAME

Top

App::EditorTools::Command::InstallEmacs - Install emacs bindings for App::EditorTools

SYNOPSIS

Top

    # Install the emacs script to create binding to App::EditorTools with:
    editortools install-emacs

DESCRIPTION

Top

This will place the emacs script contained in the share dir of this distribution where emacs expects it ( $HOME/.emacs.d/editortools.el for a local install on a unix-like system)>).

OPTIONS

Top

--local

Install the emacs script for the local user only. This will put the script in $HOME/.emacs.d/editortools.el or a similar location for your operating system. This is the default action.

--dest

Specify a full path (directory and filename) for the emacs script.

--print

Print the emacs script to STDOUT.

--dryrun

Don't do anything, just print what we would do.

SEE ALSO

Top

Also see PPIx::EditorTools, Padre, and PPI.

AUTHOR

Top

Mark Grimes, <mgrimes@cpan.org>

COPYRIGHT AND LICENSE

Top


App-EditorTools documentation Contained in the App-EditorTools distribution.

package App::EditorTools::Command::InstallEmacs;

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

#use App::EditorTools -command;
use File::HomeDir;

our $VERSION = '0.03';

sub command_names { 'install-emacs' }

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

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");
        } elsif ( !$opt->{print} ) {
            $opt->{dest} =
              File::Spec->catfile( File::HomeDir->my_home,
                ( $^O eq 'MSWin32' ? '_emacs.d' : '.emacs.d' ),
                qw(editortools.el) );
        }
    }

    return 1;
}

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

sub _intro {
    return <<"END_INTRO";
;;; editortools.el --- make use of App::EditorTools Perl module
;; App::EditorTools::Command::InstallEmacs generated script
;; Version: $VERSION
END_INTRO
}


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

1;