% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/cran-data-archive.R
\name{pkgstats_from_archive}
\alias{pkgstats_from_archive}
\title{Trawl a local CRAN archive and extract statistics from all packages}
\usage{
pkgstats_from_archive(
  path,
  archive = TRUE,
  prev_results = NULL,
  results_file = NULL,
  chunk_size = 1000L,
  num_cores = 1L,
  save_full = FALSE,
  save_ex_calls = FALSE,
  results_path = fs::path_temp()
)
}
\arguments{
\item{path}{Path to local archive of R packages, either as source
directories, or '.tar.gz' files such as in a CRAN mirror.}

\item{archive}{If \code{TRUE}, extract statistics for all packages in the
\verb{/Archive} sub-directory, otherwise only statistics for main directory (that
is, current packages only).}

\item{prev_results}{Result of previous call to this function, if available.
Submitting previous results will ensure that only newer packages not present
in previous result will be analysed, with new results simply appended to
previous results. This parameter can also specify a file to be read with
\code{readRDS()}.}

\item{results_file}{Can be used to specify the name or full path of a \code{.Rds}
file to which results should be saved once they have been generated. The
'.Rds' extension will be automatically appended, and any other extensions
will be ignored.}

\item{chunk_size}{Divide large archive trawl into chunks of this size, and
save intermediate results to local files. These intermediate files can be
combined to generate a single \code{prev_results} file, to enable jobs to be
stopped and re-started without having to recalculate all results. These files
will be named \code{pkgstats-results-N.Rds}, where "N" incrementally numbers each
file.}

\item{num_cores}{Number of machine cores to use in parallel, defaulting to
single-core processing.}

\item{save_full}{If \code{TRUE}, full \link{pkgstats} results are saved for each
package to files in \code{results_path}.}

\item{save_ex_calls}{If \code{TRUE}, the results of the \code{external_calls} component
are saved for each package to files in \code{results_path} (only if \code{save_full = FALSE}).}

\item{results_path}{Path to save intermediate files generated by the
\code{chunk_size} parameter described above.}
}
\value{
A \code{data.frame} object with one row for each package containing
summary statistics generated from the \link{pkgstats_summary} function.
}
\description{
Trawl a local CRAN archive and extract statistics from all packages
}
\examples{
# Create fake archive directory with single tarball:
f <- system.file ("extdata", "pkgstats_9.9.tar.gz", package = "pkgstats")
tarball <- basename (f)

archive_path <- file.path (tempdir (), "archive")
if (!dir.exists (archive_path)) {
    dir.create (archive_path)
}
path <- file.path (archive_path, tarball)
file.copy (f, path)
tarball_path <- file.path (archive_path, "tarballs")
dir.create (tarball_path, recursive = TRUE)
file.copy (path, file.path (tarball_path, tarball))
out <- pkgstats_from_archive (tarball_path)
}
\seealso{
Other archive:
\code{\link[=dl_pkgstats_data]{dl_pkgstats_data()}},
\code{\link[=pkgstats_cran_current_from_full]{pkgstats_cran_current_from_full()}},
\code{\link[=pkgstats_fns_from_archive]{pkgstats_fns_from_archive()}},
\code{\link[=pkgstats_fns_update]{pkgstats_fns_update()}},
\code{\link[=pkgstats_update]{pkgstats_update()}}
}
\concept{archive}
