🌻 📖 Alien::patch

NAME

Alien::patch - Find or build patch

VERSION

version 0.15

SYNOPSIS

 use Alien::patch ();
 use Env qw( @PATH );
 
 unshift @PATH, Alien::patch->bin_dir;
 my $patch = Alien::patch->exe;
 system "$patch -p1 < foo.patch";

Or in your alienfile:

 use alienfile;
 ...
 share {
    ...
    # Alien-Build knows to automatically pull in Alien::patch
    # so you do not need to specify it as a prereq.
    # The %{.install.patch} directory is a shortcut for the
    # `patch' directory in your dist, and gets copied into the
    # dist share directory, so you can rebuild with `af' after
    # install.
    patch [ '%{patch} -p1 < %{.install.patch}/mypatch.patch' ];
 };

Or with Alien::Build::ModuleBuild:

 use Alien::Base::ModuleBuild;
 Alien::Base::ModuleBuild->new(
   ...
   alien_bin_requires => {
     'Alien::patch' => '0.08',
   },
   alien_build_commands => {
     '%{patch} -p1 < foo.patch',
   },
   ...
 )->create_build_script;

DESCRIPTION

Many environments provide the patch command, but a few do not. Using this module in your alienfile (or elsewhere) you can make sure that patch will be available. If the system provides it, then great, this module is a no-op. If it does not, then it will download and install it into a private location so that it can be added to the PATH when this module is used.

This class is a subclass of Alien::Base, and works closely with Alien::Build and alienfile

METHODS

exe

 my $exe = Alien::patch->exe;

Returns the command to run patch on your system. For now it simply adds the --binary option on Windows (MSWin32 but not cygwin) which is usually what you want.

HELPERS

patch

 %{patch}

When used with Alien::Base::ModuleBuild in a alien_build_commands or alien_install_commands, this helper will be replaced by either patch (Unix and cygwin) or patch --binary (MSWin32).

SEE ALSO

Alien
Alien::Build
alienfile

1;

AUTHOR

Author: Graham Ollis <plicease@cpan.org>

Contributors:

Zakariyya Mughal

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.