NAME
App::reposdb - Manipulate repos.db
VERSION
This document describes version 0.007 of App::reposdb (from Perl
distribution App-reposdb), released on 2020-10-10.
SYNOPSIS
See reposdb.
DESCRIPTION
"repos.db" is a SQLite database that lists repository names along with
some extra data. They have various uses, but my first use-case for this
is to store last commit/status/pull time (updated via a post-commit git
hook or "gitwrap"). This is useful to speed up like syncing of
repositories in "Git::Bunch" that wants to find out which of the
hundreds/thousand+ git repositories are "the most recently used" to
prioritize these repositories first. Using information from "repos.db"
is faster than having to "git status" or even stat() each repository.
FUNCTIONS
add_repo_tag
Usage:
add_repo_tag(%args) -> [status, msg, payload, meta]
Add a tag to a repo (by default the current repo).
This function is not exported.
Arguments ('*' denotes required arguments):
* repo => *str*
* reposdb_path* => *str*
* tags* => *array[str]*
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200
means OK, 4xx caller error, 5xx function error). Second element (msg) is
a string containing error message, or 'OK' if status is 200. Third
element (payload) is optional, the actual result. Fourth element (meta)
is called result metadata and is optional, a hash that contains extra
information.
Return value: (any)
get_repo_metadata
Usage:
get_repo_metadata(%args) -> [status, msg, payload, meta]
Get metadata for a repo (by default the current repo).
This function is not exported.
Arguments ('*' denotes required arguments):
* repo => *str*
* reposdb_path* => *str*
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200
means OK, 4xx caller error, 5xx function error). Second element (msg) is
a string containing error message, or 'OK' if status is 200. Third
element (payload) is optional, the actual result. Fourth element (meta)
is called result metadata and is optional, a hash that contains extra
information.
Return value: (any)
list_repos
Usage:
list_repos(%args) -> [status, msg, payload, meta]
List repositories registered in repos.db.
This function is not exported.
Arguments ('*' denotes required arguments):
* detail => *bool*
* has_tags => *array[str]*
* lacks_tags => *array[str]*
* reposdb_path* => *str*
* sorts => *array[str]* (default: ["name"])
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200
means OK, 4xx caller error, 5xx function error). Second element (msg) is
a string containing error message, or 'OK' if status is 200. Third
element (payload) is optional, the actual result. Fourth element (meta)
is called result metadata and is optional, a hash that contains extra
information.
Return value: (any)
remove_all_repo_tags
Usage:
remove_all_repo_tags(%args) -> [status, msg, payload, meta]
Remove all tags from a repo (by default the current repo).
This function is not exported.
Arguments ('*' denotes required arguments):
* repo => *str*
* reposdb_path* => *str*
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200
means OK, 4xx caller error, 5xx function error). Second element (msg) is
a string containing error message, or 'OK' if status is 200. Third
element (payload) is optional, the actual result. Fourth element (meta)
is called result metadata and is optional, a hash that contains extra
information.
Return value: (any)
remove_repo_tag
Usage:
remove_repo_tag(%args) -> [status, msg, payload, meta]
Remove tag from a repo (by default the current repo).
This function is not exported.
Arguments ('*' denotes required arguments):
* repo => *str*
* reposdb_path* => *str*
* tags* => *array[str]*
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200
means OK, 4xx caller error, 5xx function error). Second element (msg) is
a string containing error message, or 'OK' if status is 200. Third
element (payload) is optional, the actual result. Fourth element (meta)
is called result metadata and is optional, a hash that contains extra
information.
Return value: (any)
touch_repo
Usage:
touch_repo(%args) -> [status, msg, payload, meta]
Touch the timestamp(s) of a repo (by default current repo).
This function is not exported.
Arguments ('*' denotes required arguments):
* commit_time => *bool*
* pull_time => *bool*
* repo => *str*
* reposdb_path* => *str*
* status_time => *bool*
* to => *date*
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200
means OK, 4xx caller error, 5xx function error). Second element (msg) is
a string containing error message, or 'OK' if status is 200. Third
element (payload) is optional, the actual result. Fourth element (meta)
is called result metadata and is optional, a hash that contains extra
information.
Return value: (any)
HOMEPAGE
Please visit the project's homepage at
<https://metacpan.org/release/App-reposdb>.
SOURCE
Source repository is at <https://github.com/perlancar/perl-App-reposdb>.
BUGS
Please report any bugs or feature requests on the bugtracker website
<https://rt.cpan.org/Public/Dist/Display.html?Name=App-reposdb>
When submitting a bug or request, please include a test-file or a patch
to an existing test-file that illustrates the bug or desired feature.
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020, 2017, 2016 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.