logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Pinto::Repository - Coordinates the database, files, and indexes

Attributes

rootconfigdbstorelocatorlocker

Author

       Jeffrey Ryan Thalhammer <jeff@stratopan.com>

Methods

locate(target=>);lock($LOCK_TYPE)unlockget_stack()get_stack($stack_name)get_stack($stack_object)
       Returns the Pinto::Schema::Result::Stack object with the given $stack_name.  If the argument is a
       Pinto::Schema::Result::Stack, then it just returns that.  If there is no stack with such a name in the
       repository, throws an exception.  If you do not specify a stack name (or it is undefined) then you'll get
       whatever stack is currently marked as the default stack.

       The stack object will not be open for revision, so you will not be able to change any of the
       registrations for that stack.  To get a stack that you can modify, use "open_stack".

   get_stack_maybe()get_stack_maybe($stack_name)get_stack_maybe($stack_object)
       Same as "get_stack" but simply returns undef if the stack does not exist rather than throwing an
       exception.

   get_default_stack()
       Returns the Pinto::Schema::Result::Stack that is currently marked as the default stack in this
       repository.  This is what you get when you call "get_stack" without any arguments.

       The stack object will not be open for revision, so you will not be able to change any of the
       registrations for that stack.  To get a stack that you can modify, use "open_stack".

       At any time, there must be exactly one default stack.  This method will throw an exception if it
       discovers that condition is not true.

   get_all_stacks()
       Returns a list of all the Pinto::Schema::Result::Stack objects in the repository.  You can sort them as
       strings (by name) or numerically (by last modification time).

   get_revision($commit)get_revision_maybe($commit)get_package(target=>$pkg_spec)
       Returns a <Pinto:Schema::Result::Package> representing the latest version of the package in the
       repository with the same name as the package target andthesameorhigherversion as the package  spec.
       See Pinto::Target::Package for the definition of a package target.

   get_package(name=>$pkg_name)
       Returns a <Pinto:Schema::Result::Package> representing the latest version of the package in the
       repository with the given $pkg_name.   If there is no such package with that name in the repository,
       returns nothing.

   get_package(name=>$pkg_name,path=>$dist_path)
       Returns the <Pinto:Schema::Result::Package> with the given $pkg_name that belongs to the distribution
       identified by  $dist_path. If there is no such package in the repository,  returns nothing.

       TODO: Consider making this a "maybe" function and the wrapping it with a version that throws exceptions
       if no match is found. See get_stack_maybe() for an example.

   get_distribution(target=>$target)
       Given a Pinto::Target::Package, returns the Pinto::Schema::Result::Distribution that contains the latestversionofthepackage in this repository with the same  name as the target andthesameorhigherversionasthetarget.  Returns nothing  if no such distribution is found.

       Given a Pinto::Target::Distribution, returns the Pinto::Schema::Result::Distribution from this repository
       with the same author id and archive attributes as the target.   Returns nothing if no such distribution
       is found.

   get_distribution(path=>$dist_path)
       Given a distribution path, (for example "AUTHOR/Dist-1.0.tar.gz" or "A/AU/AUTHOR/Dist-1.0.tar.gz" returns
       the Pinto::Schema::Result::Distribution from this repository that is identified by the author ID and
       archive file name in the path.  Returns nothing if no such distribution is found.

   get_distribution(author=>$author,archive=>$archive)
       Given an author id and a distribution archive file basename, returns the
       Pinto::Schema::Result::Distribution from this repository with those attributes.  Returns nothing if no
       such distribution exists.

       TODO: Consider making this a "maybe" function and the wrapping it with a version that throws exceptions
       if no match is found. See get_stack_maybe() for an example.

   ups_distribution(target=>target)
       Given a Pinto::Target::Package, locates the distribution that contains the latest version of the package
       across all upstream repositories with the same name as  the target, and the same or higher version as the
       target.  If such distribution is found, it is fetched and added to this repository.  If it is not found,
       then an exception is thrown.

       Given a Pinto::Target::Distribution, locates the first distribution in any upstream repository with the
       same author and archive as the target.  If such distribution is found, it is fetched and added to this
       repository.  If it  is not found, then an exception is thrown.

       TODO: Consider making this a "maybe" function and the wrapping it with a version that throws exceptions
       if no match is found. See get_stack_maybe() for an example.

   add(archive=>$path,author=>$id)add(archive=>$path,author=>$id,source=>$uri)
       Adds the distribution archive located on the local filesystem at $path to the repository in the author
       directory for the author with $id.  The packages provided by the distribution will be indexed, and the
       prerequisites will be recorded.  If the "source" is specified, it must be the URI to the root of the
       repository where the distribution came from.  Otherwise, the "source" defaults to "LOCAL".  Returns a
       Pinto::Schema::Result::Distribution object representing the newly added distribution.

   fetch_distribution(uri=>$uri)
       Fetches a distribution archive from a remote URI and adds it to this repository.  The packages provided
       by the distribution will be indexed, and the prerequisites will be recorded.  Returns a
       Pinto::Schema::Result::Distribution object representing the fetched distribution.

   clean_files()
       Deletes all distribution archives that are on the filesystem but not in the database.  This can happen
       when an Action fails or is aborted prematurely.

Name

       Pinto::Repository - Coordinates the database, files, and indexes

Version

       version 0.14

See Also