{"id":21307055,"url":"https://github.com/perlalien/app-af","last_synced_at":"2025-03-15T19:48:29.287Z","repository":{"id":39580924,"uuid":"81088991","full_name":"PerlAlien/App-af","owner":"PerlAlien","description":"Command line tool for alienfile","archived":false,"fork":false,"pushed_at":"2022-09-22T15:27:24.000Z","size":108,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-22T09:11:59.573Z","etag":null,"topics":["alien","cli","perl"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PerlAlien.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-06T13:19:00.000Z","updated_at":"2023-01-19T12:26:54.000Z","dependencies_parsed_at":"2022-09-09T21:10:39.745Z","dependency_job_id":null,"html_url":"https://github.com/PerlAlien/App-af","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerlAlien%2FApp-af","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerlAlien%2FApp-af/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerlAlien%2FApp-af/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerlAlien%2FApp-af/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PerlAlien","download_url":"https://codeload.github.com/PerlAlien/App-af/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243784103,"owners_count":20347409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alien","cli","perl"],"created_at":"2024-11-21T16:29:32.462Z","updated_at":"2025-03-15T19:48:29.259Z","avatar_url":"https://github.com/PerlAlien.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# af ![static](https://github.com/PerlAlien/App-af/workflows/static/badge.svg) ![linux](https://github.com/PerlAlien/App-af/workflows/linux/badge.svg) ![macos](https://github.com/PerlAlien/App-af/workflows/macos/badge.svg) ![windows](https://github.com/PerlAlien/App-af/workflows/windows/badge.svg) ![cygwin](https://github.com/PerlAlien/App-af/workflows/cygwin/badge.svg) ![msys2-mingw](https://github.com/PerlAlien/App-af/workflows/msys2-mingw/badge.svg)\n\nCommand line tool for alienfile\n\n# SYNOPSIS\n\n```\naf probe      --help\naf download   --help\naf install    --help\naf requires   --help\naf missing    --help\naf prop       --help\naf list       --help\n```\n\n# DESCRIPTION\n\nThe `af` command is a command line interface to [alienfile](https://metacpan.org/pod/alienfile) and\n[Alien::Build](https://metacpan.org/pod/Alien::Build).\n\n### options\n\nThese options are available for all subcommands.\n\n#### --help\n\nPrint the help for either `af` as a whole, or the specific subcommand.\n\n#### --version\n\nPrint the version of `af` and exit.\n\n# SUBCOMMANDS\n\n## download\n\n### Usage\n\n```\naf download\n  [ ( -f | --file )  alienfile | ( -c | --class ) class ]\n  [ ( -l | --local ) directory ]\n```\n\n### description\n\nDownload the external resource using the usual [alienfile](https://metacpan.org/pod/alienfile) logic.  File\nwill be deposited in the directory indicated by the `--local` (or `-l`)\noption, or the current working directory if not specified.\n\n### options\n\n#### -f | --file\n\nThe [alienfile](https://metacpan.org/pod/alienfile).  If neither this option, nor `-c` is specified, then\n`alienfile` in the current directory will be assumed.\n\n#### -c | --class\n\nGet the [alienfile](https://metacpan.org/pod/alienfile) from the already installed Alien module.    You may\nomit the `Alien::` prefix, so for example [Alien::curl](https://metacpan.org/pod/Alien::curl) may be specified\nas simply `curl`.\n\n#### -l | --local\n\nThe location to store the downloaded resource.  The current directory\nif not specified.\n\n## probe\n\n### Usage\n\n```\naf probe\n  [ ( -f | --file ) alienfile | ( -c | --class ) class ]\n  [ --root directory ]\n  [ --before hook command ] [ --after hook command ]\n  [ -I lib ] [ --blib ]\n```\n\n### description\n\nProbe system for existing library or tool using the given [alienfile](https://metacpan.org/pod/alienfile).\n\n#### -f | --file\n\nThe [alienfile](https://metacpan.org/pod/alienfile).  If neither this option, nor `-c` is specified, then\n`alienfile` in the current directory will be assumed.\n\n#### -c | --class\n\nGet the [alienfile](https://metacpan.org/pod/alienfile) from the already installed Alien module.    You may\nomit the `Alien::` prefix, so for example [Alien::curl](https://metacpan.org/pod/Alien::curl) may be specified\nas simply `curl`.  If you do not specify the `--prefix` option, the\npackage will replace the already installed one.\n\n#### --root\n\nBuild in root\n\n#### -I\n\nAdd directory to the Perl search lib (like -I on [perl](https://metacpan.org/pod/perl)).\n\n#### --blib\n\nUse the blib from the current directory.\n\n## install\n\n### Usage\n\n```\naf install\n  [ ( -f | --file )  alienfile |  ( -c | --class ) class ]\n  [ --prefix directory | --dry-run ] [ --stage directory ]\n  [ --type ( share | system ) ] [ --root directory ]\n  [ --before hook command ] [ --after hook command ]\n  [ -I lib ] [ --blib ]\n```\n\n### description\n\nInstall or reinstall using the given [alienfile](https://metacpan.org/pod/alienfile) or already installed\n[Alien](https://metacpan.org/pod/Alien).\n\n### options\n\n#### -f | --file\n\nThe [alienfile](https://metacpan.org/pod/alienfile).  If neither this option, nor `-c` is specified, then\n`alienfile` in the current directory will be assumed.\n\n#### -c | --class\n\nGet the [alienfile](https://metacpan.org/pod/alienfile) from the already installed Alien module.    You may\nomit the `Alien::` prefix, so for example [Alien::curl](https://metacpan.org/pod/Alien::curl) may be specified\nas simply `curl`.  If you do not specify the `--prefix` option, the\npackage will replace the already installed one.\n\n#### --stage\n\nThe stage directory.  By default this is a temporary directory that will\nautomatically be removed.\n\n#### --prefix\n\nThe final install location to use.  Required when using the `-f` option,\nbut optional when using the `-c` option.\n\n#### --type\n\nOverride the install type.  May be either `share` or `system`.\n\n#### --dry-run\n\nDo not install into the final location.\n\n#### --root\n\nBuild in root\n\n#### --before\n\nExecute the given command before the given hook.  Note that the same\nhook my execute several times for a given recipe.  Example, to open up\nan interactive shell before the build has started, right after the\nextraction:\n\n```\n% af install --before build bash\n```\n\nThe build configuration is check pointed, so you can read the install\nand runtime properties in the `state.json` file in the build root.\nUse \\* or % as the hook to run the command before all hooks.  You can\nuse `:repl` as the command to open up a Perl REPL (Read-Eval-Print-Loop)\nto inspect the `$build` and `$meta` objects.\n\n#### --after\n\nExecute the given command after the given hook.  Note that the same hook\nmy execute several times for a given recipe.  Example, to open up an\ninteractive shell after the build has completed:\n\n```\n% af install --after build bash\n```\n\nThe build configuration is check pointed, so you can read the install\nand runtime properties in the `state.json` file in the build root.\nUse \\* or % as the hook to run the command before all hooks.  You can\nuse `:repl` as the command to open up a Perl REPL (Read-Eval-Print-Loop)\nto inspect the `$build` and `$meta` objects.\n\n#### -I\n\nAdd directory to the Perl search lib (like -I on [perl](https://metacpan.org/pod/perl)).\n\n#### --blib\n\nUse the blib from the current directory.\n\n## requires\n\n### Usage\n\n```\naf requires\n  [ ( -f | --file )  alienfile |  ( -c | --class ) class ]\n  [ ( -p | --phase ) ( configure | any | share | system ) ]\n```\n\n### description\n\nPrint the requirements for the given phase in [YAML](https://metacpan.org/pod/YAML) format.  If the phase\nis not provided, then requirements for all phases will be printed separately\nin [YAML](https://metacpan.org/pod/YAML) format.\n\n### options\n\n#### -f | --file\n\nThe [alienfile](https://metacpan.org/pod/alienfile).  If neither this option, nor `-c` is specified, then\n`alienfile` in the current directory will be assumed.\n\n#### -c | --class\n\nGet the [alienfile](https://metacpan.org/pod/alienfile) from the already installed Alien module.    You may\nomit the `Alien::` prefix, so for example [Alien::curl](https://metacpan.org/pod/Alien::curl) may be specified\nas simply `curl`.\n\n#### -p | --phase\n\nThe phase of the requirement.  Please refer to the [Alien::Build](https://metacpan.org/pod/Alien::Build) documentation\nfor the meaning of the various phases.\n\n## missing\n\n### Usage\n\n```\naf missing\n  [ ( -f | --file )  alienfile |  ( -c | --class ) class ]\n  [ ( -p | --phase ) ( configure | any | share | system ) ]\n  [ --plugin | --precompile ]\n```\n\n### description\n\nPrint the requirements for the given phase in list format that are not\ncurrently fulfilled.  This output can be piped into [cpanm](https://metacpan.org/pod/cpanm) in order\nto install any missing requirements:\n\n```\n% af missing -p configure | cpanm\n% af missing              | cpanm\n```\n\nIf no phase is specified, then missing prereqs for configure, and either\nshare or system will be printed depending on what type of install is\ndetected (for this to work you may need to install the configure\nprereqs, since the probe may use configure required modules).\n\n### options\n\n#### -f | --file\n\nThe [alienfile](https://metacpan.org/pod/alienfile).  If neither this option, nor `-c` is specified, then\n`alienfile` in the current directory will be assumed.\n\n#### -c | --class\n\nGet the [alienfile](https://metacpan.org/pod/alienfile) from the already installed Alien module.    You may\nomit the `Alien::` prefix, so for example [Alien::curl](https://metacpan.org/pod/Alien::curl) may be specified\nas simply `curl`.\n\n#### -p | --phase\n\nThe phase of the requirement.  Please refer to the [Alien::Build](https://metacpan.org/pod/Alien::Build)\ndocumentation for the meaning of the various phases.\n\n#### --plugin\n\nPrint out missing plugins.  Caveat: to do this, `af` mocks part of\n[Alien::Build::Meta](https://metacpan.org/pod/Alien::Build::Meta), which may or may not break in the future.\n\n## --precompile\n\nPrint out missing modules that are needed before the [alienfile](https://metacpan.org/pod/alienfile) is even\ncompiled.  These are usually `configure` time prereqs, but if they are\n`use`d in the [alienfile](https://metacpan.org/pod/alienfile) instead of being declared as a `requires`, then\nthere is no way for [Alien::Build](https://metacpan.org/pod/Alien::Build) to query for them.  Caveat: since\n[alienfile](https://metacpan.org/pod/alienfile) is arbitrary Perl code, there may be corner cases not covered\nby this option.\n\n## prop\n\n### Usage\n\n```\naf prop\n  ( -c | --class ) class [ --cflags ] [ --libs ] [ --static ]\n  [ --modversion ] [ --bin-dir ]\n```\n\n### prop\n\nPrint the runtime properties for the given [Alien](https://metacpan.org/pod/Alien) class.  You may\nomit the `Alien::` prefix, so for example [Alien::curl](https://metacpan.org/pod/Alien::curl) may be queried\nas simply `curl`.  If no specific properties are requested then the\nentire runtime property hash will be printed in [YAML](https://metacpan.org/pod/YAML) format.\n\n### options\n\n#### -c | --class\n\nThe class to query for runtime properties.  This option is required.\n\n#### --cflags\n\nPrint the compiler flags\n\n#### --libs\n\nPrint the linker flags\n\n#### --static\n\nFor either the `--cflags` or `--libs` option print the static versions.\n\n#### --modversion\n\nPrint the version of the Alienized package.  This is not the version of\nthe [Alien](https://metacpan.org/pod/Alien) module itself.\n\n#### --bin-dir\n\nPrint the list of directories bundled with a `share` install.\n\n## list\n\n### Usage\n\n```\naf list [ -l | --long ]\n```\n\n### prop\n\nPrint list of [Alien](https://metacpan.org/pod/Alien) modules already installed that used [Alien::Build](https://metacpan.org/pod/Alien::Build)\nas their installer.\n\n### options\n\n#### -l | --long\n\nAlso print the version number of the [Alien](https://metacpan.org/pod/Alien) module, and the version of the\nalienized package.\n\n# AUTHOR\n\nAuthor: Graham Ollis \u003cplicease@cpan.org\u003e\n\nContributors:\n\nDiab Jerius (DJERIUS)\n\n# COPYRIGHT AND LICENSE\n\nThis software is copyright (c) 2017-2022 by Graham Ollis.\n\nThis is free software; you can redistribute it and/or modify it under\nthe same terms as the Perl 5 programming language system itself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperlalien%2Fapp-af","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fperlalien%2Fapp-af","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperlalien%2Fapp-af/lists"}