The registry file is a JSON document with a single top-level JSON object which follows the schema described in just-install-v4.schema.json. This document roughly describes the format of the registry file for humans :smile:
There are no examples in this document, the registry file itself is a living example of what you can do.
The top-level JSON object must contain two keys:
version
: Contains the version of the registry file and is used to prompt upgrades from older
versions of just-install. The version is bumped each time we make a backward-incompatible change
to the file format.packages
: This is a JSON object. Each key represents a package name and the value is itself a
JSON object that contains the software version and instructions to get the installer. See “Package
Entry” below for a description.Each entry is a JSON object that must contain at least the following two keys:
installer
: A JSON object which describes where the installer is and how to run it once
downloaded. See “Installer Options” below for a description.version
: The software’s version. If you are adding an unversioned link that always points to the
latest stable version use latest
here.The following key is optional:
skipAudit
: A boolean value that indicates whether CI should skip audits for this package. Use
with care.This JSON object must contain at least the following two keys:
x86
: The value is a string with the URL that must be used to download the installer. You can use
`` as a placeholder for the package’s version.kind
: It can be one of the following:
advancedinstaller
: Silently installs Advanced Installer packages;as-is
: Will run the executable as-is;copy
: Copy the file according to the destination
parameter;custom
: Allows you to specify how to call the installer
(example);innosetup
: Silently installs InnoSetup packages;msi
: Silently installs Windows Installer packages;nsis
: Silently installs NSIS packages;zip
: Runs
an installer within a .zip file or extracts
it to a destination directory.options
: A JSON object whose contents depend on the value of the kind
, but other options are
applicable to all installer types:
extension
: Specify a custom extension for a file, in case just-install
isn’t able to
determine it by itself (example).filename
: The complete name of the file that should be downloaded in the temporary
directory. When specified, this value takes precedence over extension
.Shims are a way to easily add executables to the %PATH%
. They are created only if the user has
installed exeproxy
(either through just-install
itself or manually) and only if the package
entry specifies some shims to create.
Take, for example, the
Go entry, which will create three executables called go.exe
, godoc.exe
and gofmt.exe
under %SystemDrive%\Shims
which will forward arguments to the original executable.
This way, users do not need to add a directory for each installed program to their %PATH%
since
they can just add %SystemDrive%\Shims
.
In some places, you can use the following placeholders:
: Where `ENV_VAR` is any environment variable found on the system. All environment
variables are normalized to upper case so, for example, `%SystemDrive%` becomes available as
. One exception is %ProgramFiles(x86)%
that gets normalized as
`` (notice the lack of parentheses).