# dcr run Builds the project and runs the resulting binary. ## Usage ```sh dcr run dcr run --debug dcr run --release dcr run --target linux --release dcr run --release --force dcr run --debug --clean ``` ## Behavior 1. Validates `dcr.toml`. 2. Reads `package.name`, `build.kind`, and optional `build.target`. 3. Runs the same build flow as `dcr build`. 4. Executes the built artifact path for the selected profile. 5. If `[run].cmd` is set, runs that command instead of the built binary. ## Restrictions - If `build.kind` (or `build.{profile}.kind`) is `"staticlib"`, `"sharedlib"`, `"efi"`, or `"elf"`, `run` exits with error. - The profile is selected from the first argument. - `--target ` runs the binary for specified target (short names: `linux`, `macos`, `windows`, `freebsd`, `openbsd`, `netbsd`). - `--force` skips build cache checks and recompiles. - `--clean` removes `target/` and `build.clean` paths before building. - `--workspace ` filters build to a specific workspace member. ## `run.cmd` variables `run.cmd` supports the same variables as build steps: `{profile}`, `{version}`, `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}`. The command runs via `sh -c` on Unix and `cmd /C` on Windows. ## On build failure `dcr run` attempts to launch an existing binary from the same profile if present; otherwise it reports that code errors must be fixed.