App-Fetchware
view release on metacpan or search on metacpan
bin/fetchware view on Meta::CPAN
Prints out a short message and says what version of fetchware is running.
=head2 -h or -? or --help
Prints out a brief screen full of help messages reminding you of fetchware's
command-line syntax.
=head1 HOW FETCHWARE WORKS
Fetchware works by having fetchware, the C<bin/fetchware> file and
App::Fetchware Perl package, do all of the "package manager" stuff:
=over
=item *
Creating fetchware packages (create_fetchware_package())
=item *
Copying fetchware packages to the fetchware database
(copy_fpkg_to_fpkg_database())
=item *
Creating and managing the fetchware database
(determine_fetchware_package_path(), extract_fetchwarefile(),
and fetchware_database_path())
=item *
uninstalling installed packages from the fetchware database
(uninstall_fetchware_package_from_database())
=back
Fetchware I<delegates> all of the specifics on how to install, upgrade, and
uninstall the fetchware packages that fetchware manages to App::Fetchware or a
App::Fetchware extension:
=over
=item *
Implement Fetchware's new command's Q&A wizard interface (new() and new_install())
=item *
Checking Fetchwarefile's high-level syntax before execution (check_syntax())
=item *
Lookup to see if a new version is available (lookup())
=item *
Downloading the archive (download())
=item *
Verifying that the downloaded file is the same one the author uploaded (verify())
=item *
Unarchiving the package (unarchive())
=item *
Building and installing it (build() and install())
=item *
Uninstalling any already installed fetchware package (uninstall())
=item *
Determining if a newer version is available (upgrade())
=item *
Some before and after hooks (start() and end()).
=back
=head2 How fetchware's commands work
Fetchware's commands work by using fetchware's API, described in the section
L<INTERNAL LIBRARY SUBROUTINES>, to manage the package manager stuff. And
fetchware I<delegates> the heavy lifting of the steps needed to install,
upgrade, and uninstall fetchware packages to L<App::Fetchware> or a
L<App::Fetchware extension|App::Fetchware/"CREATING A FETCHWARE EXTENSION">.
=over
=item new
C<new> just asks the user a bunch of questions, and gives them an opportunity to
answer questions. Then it uses your answers to generate a Fetchwarefile for you,
so that you don't have to mess with creating one manually in a text editor.
=item install
Fetchware's install runs whatever fetchware API subroutines it needs to use, see
the section L<INTERNAL LIBRARY SUBROUTINES> for more. Then, install() will parse
a user provided Fetchwarefile or a Fetchwarefile fetchware finds in a fetchware
package. The act of parsing the Fetchwarefile will import the App::Fetchware API
subroutines into fetchware's namespace. This gives fetchware access to
App::Fetchwares API or whatever extension may have been used. Then, the API
subroutines are run providing whatever arguments they need and storing whatever
their important return values may be in a variable to probably later be given to
a later API subroutine as an argument.
=item upgrade
Cleverly reusues the same API subroutines that install uses, but in the middle
of all that uses the upgrade() API subroutine to determine if a newer version is
available. The upgrade() API subroutine allows Fetchware extensions to modify
how Fetcwhare determines if a new version is available to support using git or
something else to determine this.
=item uninstall
( run in 1.167 second using v1.01-cache-2.11-cpan-b16cb0d3907 )