revng-project#
NAME#
revng project - Porcelain commands operating on a persistent project, i.e., a directory containing revng.yml.
SYNOPSIS#
revng project [OPTIONS] COMMAND [ARGS...]
DESCRIPTION#
The revng project command group is a subcommand of revng.
It operates on a project: a directory holding a revng.yml file. Unlike the one-shot revng quick commands, the state produced by one invocation is preserved and reused by the next one.
A typical workflow is:
# Create the revng.yml file and run the initial auto analysis
revng project init /usr/bin/hostname
# Obtain an artifact
revng project artifact emit-c-as-single-file -o decompiled.c.yml
COMMANDS#
init
: Initialize a new project.
analyze
: Run an analysis or analysis list.
artifact
: Produce an artifact.
daemon
: Start the HTTP daemon serving the project.
OPTIONS#
These options are accepted by the revng project group itself and apply to every subcommand:
--pipeline PIPELINE
: Path to the pipeline file. Defaults to the PYPELINE_PIPELINE environment variable if set, otherwise the pipeline shipped with the installation.
--storage-provider URL
: URL of the storage provider to use, in the form SCHEME://.... Defaults to local://. Can also be set through the REVNG_STORAGE_PROVIDER environment variable, which takes precedence over the default but not over an explicitly passed --storage-provider.
The available schemes are:
local://- store the project in the local directory. This is the default.local://?inline- likelocal://, but keep the cache database in a.cachedirectory inside the project (next torevng.yml) instead of under--cache-dir. The cache is then co-located with the project and moves with it.temporary://- likelocal://, but in a throwaway directory that is removed on exit. This is whatrevng quickuses.memory://- keep the project in memory; nothing is written to disk.null://- discard all writes.rss://HOST:PORT/?proto=http|https- use a Remote Storage Server over HTTP(S).daemon://HOST:PORT- do not compute anything locally; instead delegate every artifact and analysis to a running daemon (started withrevng project daemon) and exchange models and containers with it over HTTP. The daemon owns the project storage, soinitis unavailable (the daemon manages its own project) and options that need local compute (--debug,--invalidations) are rejected.
--cache-dir DIRECTORY
: Directory to use for caching. Defaults to $XDG_CACHE_HOME/revng or ~/.cache/revng.
SEE ALSO#
revng, revng-project-init, revng-project-analyze, revng-project-artifact, revng-project-daemon