NAME

    af - Command line tool for alienfile

VERSION

    version 0.18

SYNOPSIS

     af probe      --help
     af download   --help
     af install    --help
     af requires   --help
     af missing    --help
     af prop       --help
     af list       --help

DESCRIPTION

    The af command is a command line interface to alienfile and
    Alien::Build.

  options

    These options are available for all subcommands.

   --help

    Print the help for either af as a whole, or the specific subcommand.

   --version

    Print the version of af and exit.

SUBCOMMANDS

 download

  Usage

     af download
       [ ( -f | --file )  alienfile | ( -c | --class ) class ]
       [ ( -l | --local ) directory ]

  description

    Download the external resource using the usual alienfile logic. File
    will be deposited in the directory indicated by the --local (or -l)
    option, or the current working directory if not specified.

  options

   -f | --file

    The alienfile. If neither this option, nor -c is specified, then
    alienfile in the current directory will be assumed.

   -c | --class

    Get the alienfile from the already installed Alien module. You may omit
    the Alien:: prefix, so for example Alien::curl may be specified as
    simply curl.

   -l | --local

    The location to store the downloaded resource. The current directory if
    not specified.

 probe

  Usage

     af probe
       [ ( -f | --file ) alienfile | ( -c | --class ) class ]
       [ --root directory ]
       [ --before hook command ] [ --after hook command ]
       [ -I lib ] [ --blib ]

  description

    Probe system for existing library or tool using the given alienfile.

   -f | --file

    The alienfile. If neither this option, nor -c is specified, then
    alienfile in the current directory will be assumed.

   -c | --class

    Get the alienfile from the already installed Alien module. You may omit
    the Alien:: prefix, so for example Alien::curl may be specified as
    simply curl. If you do not specify the --prefix option, the package
    will replace the already installed one.

   --root

    Build in root

   -I

    Add directory to the Perl search lib (like -I on perl).

   --blib

    Use the blib from the current directory.

 install

  Usage

     af install
       [ ( -f | --file )  alienfile |  ( -c | --class ) class ]
       [ --prefix directory | --dry-run ] [ --stage directory ]
       [ --type ( share | system ) ] [ --root directory ]
       [ --before hook command ] [ --after hook command ]
       [ -I lib ] [ --blib ]

  description

    Install or reinstall using the given alienfile or already installed
    Alien.

  options

   -f | --file

    The alienfile. If neither this option, nor -c is specified, then
    alienfile in the current directory will be assumed.

   -c | --class

    Get the alienfile from the already installed Alien module. You may omit
    the Alien:: prefix, so for example Alien::curl may be specified as
    simply curl. If you do not specify the --prefix option, the package
    will replace the already installed one.

   --stage

    The stage directory. By default this is a temporary directory that will
    automatically be removed.

   --prefix

    The final install location to use. Required when using the -f option,
    but optional when using the -c option.

   --type

    Override the install type. May be either share or system.

   --dry-run

    Do not install into the final location.

   --root

    Build in root

   --before

    Execute the given command before the given hook. Note that the same
    hook my execute several times for a given recipe. Example, to open up
    an interactive shell before the build has started, right after the
    extraction:

     % af install --before build bash

    The build configuration is check pointed, so you can read the install
    and runtime properties in the state.json file in the build root. Use *
    or % as the hook to run the command before all hooks. You can use :repl
    as the command to open up a Perl REPL (Read-Eval-Print-Loop) to inspect
    the $build and $meta objects.

   --after

    Execute the given command after the given hook. Note that the same hook
    my execute several times for a given recipe. Example, to open up an
    interactive shell after the build has completed:

     % af install --after build bash

    The build configuration is check pointed, so you can read the install
    and runtime properties in the state.json file in the build root. Use *
    or % as the hook to run the command before all hooks. You can use :repl
    as the command to open up a Perl REPL (Read-Eval-Print-Loop) to inspect
    the $build and $meta objects.

   -I

    Add directory to the Perl search lib (like -I on perl).

   --blib

    Use the blib from the current directory.

 requires

  Usage

     af requires
       [ ( -f | --file )  alienfile |  ( -c | --class ) class ]
       [ ( -p | --phase ) ( configure | any | share | system ) ]

  description

    Print the requirements for the given phase in YAML format. If the phase
    is not provided, then requirements for all phases will be printed
    separately in YAML format.

  options

   -f | --file

    The alienfile. If neither this option, nor -c is specified, then
    alienfile in the current directory will be assumed.

   -c | --class

    Get the alienfile from the already installed Alien module. You may omit
    the Alien:: prefix, so for example Alien::curl may be specified as
    simply curl.

   -p | --phase

    The phase of the requirement. Please refer to the Alien::Build
    documentation for the meaning of the various phases.

 missing

  Usage

     af missing
       [ ( -f | --file )  alienfile |  ( -c | --class ) class ]
       [ ( -p | --phase ) ( configure | any | share | system ) ]
       [ --plugin | --precompile ]

  description

    Print the requirements for the given phase in list format that are not
    currently fulfilled. This output can be piped into cpanm in order to
    install any missing requirements:

     % af missing -p configure | cpanm
     % af missing              | cpanm

    If no phase is specified, then missing prereqs for configure, and
    either share or system will be printed depending on what type of
    install is detected (for this to work you may need to install the
    configure prereqs, since the probe may use configure required modules).

  options

   -f | --file

    The alienfile. If neither this option, nor -c is specified, then
    alienfile in the current directory will be assumed.

   -c | --class

    Get the alienfile from the already installed Alien module. You may omit
    the Alien:: prefix, so for example Alien::curl may be specified as
    simply curl.

   -p | --phase

    The phase of the requirement. Please refer to the Alien::Build
    documentation for the meaning of the various phases.

   --plugin

    Print out missing plugins. Caveat: to do this, af mocks part of
    Alien::Build::Meta, which may or may not break in the future.

 --precompile

    Print out missing modules that are needed before the alienfile is even
    compiled. These are usually configure time prereqs, but if they are
    used in the alienfile instead of being declared as a requires, then
    there is no way for Alien::Build to query for them. Caveat: since
    alienfile is arbitrary Perl code, there may be corner cases not covered
    by this option.

 prop

  Usage

     af prop
       ( -c | --class ) class [ --cflags ] [ --libs ] [ --static ]
       [ --modversion ] [ --bin-dir ]

  prop

    Print the runtime properties for the given Alien class. You may omit
    the Alien:: prefix, so for example Alien::curl may be queried as simply
    curl. If no specific properties are requested then the entire runtime
    property hash will be printed in YAML format.

  options

   -c | --class

    The class to query for runtime properties. This option is required.

   --cflags

    Print the compiler flags

   --libs

    Print the linker flags

   --static

    For either the --cflags or --libs option print the static versions.

   --modversion

    Print the version of the Alienized package. This is not the version of
    the Alien module itself.

   --bin-dir

    Print the list of directories bundled with a share install.

 list

  Usage

     af list [ -l | --long ]

  prop

    Print list of Alien modules already installed that used Alien::Build as
    their installer.

  options

   -l | --long

    Also print the version number of the Alien module, and the version of
    the alienized package.

AUTHOR

    Author: Graham Ollis <plicease@cpan.org>

    Contributors:

    Diab Jerius (DJERIUS)

COPYRIGHT AND LICENSE

    This software is copyright (c) 2017-2022 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.