Skip to content

Bootstrap scripts

The reference implementation is a single-file executable. A dk0 shell script (Unix) and a dk0.cmd Windows batch script are also available that bootstrap and run the single-file executable. They rely on a small set of external tools per platform; a different implementation may use different tools or none at all.

Each dk0 version installs into its own dk0exe-<version>-<abi> directory under the launcher data home (%LOCALAPPDATA%\Programs\dk0 on Windows, $XDG_DATA_HOME/dk0 or ~/.local/share/dk0 on Unix, DKCODER_DATA_HOME override). The launchers garbage collect that store on every run: the version being launched is marked used, then version directories and superseded verifier/mlfront-signify-* binaries that no launcher has used in 30 days are removed. Everything in the store re-downloads on demand from its signed manifest, so pruning is always safe and never blocks a launch.

FileWhat
pwsh in PATHenter-object interactive shell (optional; searched 1st)
powershell in PATHenter-object interactive shell (optional; searched 2nd)
cmd in PATHenter-object interactive shell (fallback; searched last)
powershell.exe in PATHdk0.cmd batch script - for InvokeWebRequest (optional; searched 1st)
bitsadmin in PATHdk0.cmd batch script - for download (fallback; searched last)
certutil in PATHdk0.cmd batch script - verify sha256sums
forfiles in PATHdk0.cmd batch script - prune old dk0 versions (optional)
FileWhat
/usr/bin/codesignexecutables are locally signed when -e GLOB_PATTERN
/bin/shenter-object interactive shell unless SHELL env var set
/bin/shdk0 shell script
/usr/bin/shasumdk0 shell script
/usr/bin/curldk0 shell script (optional; searched 1st)
/bin/curldk0 shell script (optional; searched 2nd)
/usr/bin/wgetdk0 shell script (optional; searched 3rd)
/bin/wgetdk0 shell script (fallback; searched last)
/usr/bin/mvdk0 shell script (optional; searched 1st)
/bin/mvdk0 shell script (fallback; searched last)
/usr/bin/rmdk0 shell script (optional; searched 1st)
/bin/rmdk0 shell script (fallback; searched last)
/usr/bin/unamedk0 shell script (optional; searched 1st)
/bin/unamedk0 shell script (fallback; searched last)
/usr/bin/awkdk0 shell script - to parse sha256sums (optional; searched 1st)
/bin/awkdk0 shell script (fallback; searched last)
FileWhat
/bin/shenter-object interactive shell unless SHELL env var set
/bin/shdk0 shell script
/usr/bin/shasumdk0 shell script (optional; searched 1st)
/usr/bin/sha256sumdk0 shell script (fallback; searched last)
/usr/bin/curldk0 shell script (optional; searched 1st)
/bin/curldk0 shell script (optional; searched 2nd)
/usr/bin/wgetdk0 shell script (optional; searched 3rd)
/bin/wgetdk0 shell script (fallback; searched last)
/usr/bin/mvdk0 shell script (optional; searched 1st)
/bin/mvdk0 shell script (fallback; searched last)
/usr/bin/rmdk0 shell script (optional; searched 1st)
/bin/rmdk0 shell script (fallback; searched last)
/usr/bin/unamedk0 shell script (optional; searched 1st)
/bin/unamedk0 shell script (fallback; searched last)
/usr/bin/awkdk0 shell script - to parse sha256sums (optional; searched 1st)
/bin/awkdk0 shell script (fallback; searched last)
/usr/bin/cygpathdk0 shell script (optional)