# Shulkerscript cli tool This is a cli tool for the shulkerscript language. It can be used to initialize a new project, and to compile and package a project. ## Installation ### From release (Windows) ```powershell iex (iwr "https://raw.githubusercontent.com/moritz-hoelting/shulkerscript-cli/main/install.ps1").Content ``` ### From release (Linux / macOS) ```bash curl -sfSL https://raw.githubusercontent.com/moritz-hoelting/shulkerscript-cli/main/install.sh | bash ``` ### From source ```bash cargo install shulkerscript-cli ``` ## VS Code Extension A VS Code extension is available [here](https://marketplace.visualstudio.com/items?itemName=moritz-hoelting.shulkerscript-lang) to provide syntax highlighting and snippets for Shulkerscript files. ## Usage Read the [documentation](https://shulkerscript.hoelting.dev) for more information on the language and cli. ### Initialize a new project ```bash shulkerscript init [OPTIONS] [PATH] ``` Where [PATH] is the path of the folder to initialize in [default: `.`] Options: - `--name ` The name of the project - `--description ` The description of the project - `--pack-format ` The pack format version - `--icon ` The path to the icon file, leave empty for default icon - `--force` Force initialization even if the directory is not empty - `--batch` Do not prompt for input, use default values instead if possible or fail ### Build a project ```bash shulkerscript build [OPTIONS] [PATH] ``` Where [PATH] is the path of the project folder to build [default: `.`] Options: - `--assets ` The path to the assets directory [default: `./assets`] - `--output ` The output directory, overrides the `DATAPACK_DIR` environment variable - `--no-validate` Do not validate the output to be compatible with the pack format - `--zip` Package the output into a zip file Environment variables: - `DATAPACK_DIR` The output directory [default: `./dist`] ### Clean the output directory ```bash shulkerscript clean [OPTIONS] [PATH] ``` Where [PATH] is the path of the project folder to clean [default: `.`] Options: - `--output ` The output directory, overrides the `DATAPACK_DIR` environment variable - `--all` Clean all files in the output directory, not only the ones generated by shulkerscript - `--force` Required for `--all` to prevent accidental deletion of files Environment variables: - `DATAPACK_DIR` The output directory [default: `./dist`] ### Watch for changes ```bash shulkerscript watch [OPTIONS] [PATH] ``` Where [PATH] is the path of the project folder to watch [default: `.`] Options: - `--no-initial` Do not run the command initially - `--debounce-time ` The time to wait in ms after the last change before running the command [default: `2000`] - `--watch ` The directories to watch for changes [multi-arg, default: `src`, `pack.toml`, `pack.png`, assets directory] - `--execute ` The commands (cli subcommands or shell commands) to execute in the project when changes have been detected [multi-arg, default: `build`] ## Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate. **Note that this repository only contains the cli tool for interfacing with the language. The language itself is located in the [shulkerscript-lang](https://github.com/moritz-hoelting/shulkerscript-lang) repository. Please indicate if pull requests for this repository require pull requests for the language repository**