Previously, to download an engine pesde would
require its linker to be executed. This caused
issues if called concurrently, such as with
scripts & required the user to manually execute
the engine before usage. This change makes it so
it is downloaded in the install step before any
scripts which solves the issue.
Fixes zbus on Linux panicking due to the crate
spawning a runtime inside of our own runtime. This
is avoided by using the sync mode of the crate
instead of async. Additionally, keyring operations
have been wrapped in spawn_blocking to avoid
blocking the async runtime.
Replaces chrono with jiff (already used due to
gix). Switches from the async-io to the tokio
feature in keyring. Removes dependency on
serde-with. Optimizes release mode executable
size by using aborting panics.
Squashed commit of the following:
commit 82b4b858e5
Author: daimond113 <contact@daimond113.com>
Date: Sat Feb 1 00:46:31 2025 +0100
feat: remove unused directories when purging cas
Now purging the CAS will also clean up unused
folders. Additionally, since concurrent removal
of directories seems to throw a PermissionDenied
error on Windows those are ignored. Needs
investigation on why that happens.
commit 75d6aa5443
Author: daimond113 <contact@daimond113.com>
Date: Fri Jan 31 23:24:11 2025 +0100
feat: finish prune command implementation
The prune command now discovers packages in the
CAS, removes individual unused files and then
packages which use those files, since that means
they're unused.
commit 333eb3bdd9
Author: daimond113 <contact@daimond113.com>
Date: Sun Jan 26 23:30:52 2025 +0100
chore: fix clippy lint
commit a38da43670
Author: daimond113 <contact@daimond113.com>
Date: Sun Jan 26 23:02:52 2025 +0100
feat: add cas pruning command
Removes unused files from the CAS. Still needs to
remove individual package index entries to be
complete.
Switches the `colored` crate to the `console`
crate. Additionally, to optimize the compiled
program's size switches the `inquire` crate's
backend from `crossterm` to `console`. Console was
picked out because we depend on `indicatif` which
only supports `console`.
Also switches from `winreg` to `windows-registry`,
which `reqwest` depends on to optimize size even
further. Currently has to duplicate dependencies,
as `reqwest` depends on an older version but will
become optimized once `reqwest` updates to the
latest version of the crate.
Signed-off-by: daimond113 <contact@daimond113.com>