# EzyPlatform SDK

EzyPlatform SDK provides command-line tools for EzyPlatform development,
including project creation, module packaging, documentation export, dependency
version synchronization, and SDK updates.

## View usage instructions

Run the `help` command to view the available commands and their supported
options.

You can invoke the launcher using its full path. The launcher automatically
detects the SDK home directory from its own location, so setting
`EZYPLATFORM_SDK` is optional in this case.

On Linux and macOS:

```bash
/path/to/ezyplatform-sdk/bin/ezy.sh help
```

On Windows:

```bat
C:\path\to\ezyplatform-sdk\bin\ezy.bat help
```

Alternatively, set `EZYPLATFORM_SDK` and invoke the launcher through that
variable:

```bash
$EZYPLATFORM_SDK/bin/ezy.sh help
```

```bat
%EZYPLATFORM_SDK%\bin\ezy.bat help
```

Setting `EZYPLATFORM_SDK` does not make `ezy.sh` or `ezy.bat` directly
available as a command. To use the shorter form from any directory, add the
SDK `bin` directory to `PATH` first:

```bash
ezy.sh help
```

On Windows:

```bat
ezy.bat help
```

## Update the SDK

The following examples assume that the SDK `bin` directory is already in
`PATH`. Otherwise, replace `ezy.sh` or `ezy.bat` with the full launcher path as
shown above.

Check whether a newer SDK version is available without installing it:

```bash
ezy.sh check-update
```

Download and install the latest version:

```bash
ezy.sh update
```

On Windows, use `ezy.bat` instead of `ezy.sh`:

```bat
ezy.bat check-update
ezy.bat update
```

Update to a specific version:

```bash
ezy.sh update --version 0.1.3
```

Force reinstallation of the current version or installation of an older
version:

```bash
ezy.sh update --version 0.1.3 --force
```

The SDK downloads and validates the update bundle before installing it. A
SHA-256 checksum is also verified when the update server provides one. The
current version is backed up and restored automatically if the update fails,
and the user's `settings` directory is not overwritten.

The default update server is configured through the `sdk.update.url` property
in `sdk.properties`. Override it with the `EZYPLATFORM_SDK_UPDATE_URL`
environment variable when necessary.
