Title: | Tools for 'CRAN'-Like Repositories |
Version: | 1.0.3 |
Author: | Gábor Csárdi |
Maintainer: | Gábor Csárdi <csardi.gabor@gmail.com> |
Description: | A set of functions to manage 'CRAN'-like repositories efficiently. |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
URL: | https://github.com/r-hub/cranlike |
BugReports: | https://github.com/r-hub/cranlike/issues |
RoxygenNote: | 7.3.1 |
Imports: | DBI, debugme, desc (≥ 1.1.0), RSQLite, tools, utils |
Suggests: | covr, mockery, testthat, withr, zip |
Encoding: | UTF-8 |
NeedsCompilation: | no |
Packaged: | 2024-04-24 20:51:36 UTC; gaborcsardi |
Repository: | CRAN |
Date/Publication: | 2024-04-24 21:00:02 UTC |
Tools for CRAN-like Repositories
Description
A set of functions to manage CRAN-like repositories efficiently.
See Also
Useful links:
Add R packages to the package database
Description
The files must exist in the directory. If the package database does not exist, then it will be created.
Usage
add_PACKAGES(files, dir = ".", fields = NULL, xcolumns = NULL)
Arguments
files |
Files to add, only the file names, without the path.
You can use |
dir |
Package directory. |
fields |
Fields to use in the database if the database is created. |
xcolumns |
Extra scalar columns to add to the database.
Should be a named list of character scalars or |
See Also
Other PACKAGES manipulation:
remove_PACKAGES()
,
update_PACKAGES()
Create an empty package database
Description
Create an empty package database if it does not exist. It also updates the PACKAGES* files from the new (empty) database.
Usage
create_empty_PACKAGES(dir = ".", fields = NULL, xcolumns = NULL)
Arguments
dir |
Character vector describing the location of the repository (directory including source or binary packages) to generate the ‘PACKAGES’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ files from and write them to. |
fields |
a character vector giving the fields to be used in the
‘PACKAGES’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ files in
addition to the default ones, or The default corresponds to
the fields needed by |
xcolumns |
Extra scalar columns to add to the database.
Should be a named list of character scalars or |
List all packages and versions in a CRAN-like repository
Description
List all packages and versions in a CRAN-like repository
Usage
package_versions(dir = ".", xcolumns = character())
Arguments
dir |
Path to the repository. |
xcolumns |
Extra columns to include in the result. |
Value
Data frame with at least three columns:
Package
, Version
, MD5sum
.
Remove package from a package database
Description
The files will be first removed from the database, and then from the directory.
Usage
remove_PACKAGES(files, dir = ".")
Arguments
files |
Files to remove. They must still exist at the time this function is called. |
dir |
Package directory. |
See Also
Other PACKAGES manipulation:
add_PACKAGES()
,
update_PACKAGES()
Create or update PACKAGES* files for a CRAN-like repository
Description
This function is similar to tools::write_PACKAGES()
, with some
differences:
It always uses the
MD5sum
field.It defaults to
addFiles = TRUE
, to allow following the package files better.It does not support the
verbose
,unpacked
, andsubdirs
arguments currently.It uses a database to speed up the indexing process, and only reindexes files that have added, removed or updated.
Usage
update_PACKAGES(
dir = ".",
fields = NULL,
type = c("source", "mac.binary", "win.binary"),
xcolumns = NULL
)
Arguments
dir |
Character vector describing the location of the repository (directory including source or binary packages) to generate the ‘PACKAGES’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ files from and write them to. |
fields |
a character vector giving the fields to be used in the
‘PACKAGES’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ files in
addition to the default ones, or The default corresponds to
the fields needed by |
type |
Type of packages: currently source ‘.tar.{gz,bz2,xz}’ archives,
and macOS or Windows binary (‘.tgz’ or ‘.zip’,
respectively) packages are supported. Defaults to
|
xcolumns |
Extra scalar columns to add to the database.
Should be a named list of character scalars or |
Details
update_PACKAGES
uses a SQLite database to aid updating PACKAGES*
files quickly. It this database does not exist, then it will be created
based on the existing PACKAGES* files. If no PACKAGES* files exist,
either, then these will be created via tools::write_PACKAGES()
.
See Also
Other PACKAGES manipulation:
add_PACKAGES()
,
remove_PACKAGES()
Perform a DB query, without explicit locking
Description
This is for read operations. They can also be called from within a transaction. In this case the database handle will be reused.
Usage
with_db(db_file, expr)
Arguments
db_file |
File of the DB. |
expr |
Expression to evaluate, it can refer to the connection
handle as |
Perform a DB query, with locking
Description
This creates a transaction, and an exclusive lock. It always creates a new DB connection, and closes it on exit.
Usage
with_db_lock(db_file, expr)
Arguments
db_file |
File of the DB. |
expr |
Expression to evaluate, it can refer to the connection
handle as |