NAME

   af - Command line tool for alienfile

VERSION

   version 0.16

SYNOPSIS

    af download   --help
    af probe      --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 <[email protected]>

   Contributors:

   Diab Jerius (DJERIUS)

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.