The springboardvr-cli push
commands runs a few operations in parallel, but its basic
primitives are available as separate commands that do not require network
connectivity.
springboardvr-cli diff
will compute the differences between two given folders or
archives. It will generate both a patch file (patch.pwr
) and a signature file
(patch.pwr.sig
)
You can use /dev/null
in place of the old archive to produce a patch
against an empty container. This works everywhere and does not require
the special file /dev/null
to actually exist or make sense in your
operating system.
springboardvr-cli verify
will read hashes from a signature file and compare them
with the contents of a folder. It will exit with a non-zero code if they
don't match.
This can be used to verify that an installation of a title wasn't corrupted.
springboardvr-cli apply
will use a patch file to transform an old version into
a new version. It can either rebuild the new version in a different directory
or patch the old version in place, with the --inplace
option.
A signature can be given to the apply
command via the --signature file.sig
option,
to verify that the patching was successful. When no signature is given, springboardvr-cli
assumes that the folder being patched is a non-corrupted instance of the older version.
In the following paragraph, 'added' files are files present in the newer version but not the older version, 'removed' files are files present in the older version, but not the newer, and 'touched' files are files present in both, but with a different content.
When working in-place (input directory == output directory + --inplace
):
This means, when working in-place, springboardvr-cli:
springboardvr-cli sign
will generate a signature file, in the same format as the
springboardvr-cli diff
command, and suitable to be used by the springboardvr-cli verify
command.
This could be used in a scenario where patching is irrelevant, but integrity checking is important.
springboardvr-cli file
will display whether a file is a patch file, a signature file,
or another type of file, along with some general informations about the file.
springboardvr-cli ls
will display the list of files contained in a patch file or
the list of files that can be checked via a signature file.
springboardvr-cli's output tries really hard to be readable by humans, but on occasion, will lend itself to being parsed by other tools.
To enable JSON output mode, use the -j
(or --json
) flag. In JSON mode,
each line springboardvr-cli outputs is a valid JSON object of the following form:
{type: "log", "message": "Doing something", level: "info"}
{type: "progress", "percentage": "80"}