Updater for SealDice, successor of seal-updater.
The program accepts to principal arguments: --package
(short -p
, alias --upgrade
) and --pid
. It waits for the process with the specified PID to terminate before extracting files from the provided package into the current directory. Finally, it tries to start the executable named sealdice-core
or sealdice-core.exe
unless the --skip-launch
flag is set.
For a full definition of acceptable arguments and flags, see src/cli.rs
.
Warning
Please use Rust 1.80.0 and above to build this project, as it leverages new features such as std::sync::LazyLock
.
-
Use
cargo fmt
with configurations speficied in.rustfmt.toml
to format the project. Do not runrustfmt
directly as it formats on a per-file basis and may remove disambiguate imports. -
Import types directly; prefer
File
instead ofstd::fs::File
orfs::File
, unless ambiguity forbids (Error
andio::Error
). -
Import functions by their immediate parent module; prefer
io::stdin()
instead ofstd::io::stdin()
orstdin()
.
- Implement business logic.
- Add log information.
- Add manifest and static build for Windows (via
embed_manifest
andstatic_vcruntime
). - CI/CD & auto-release
- Tests
- Make SealDice migrate from the old seal-updater.
-
We might need a graceful way to log and print information rather than littering
debug!()
andprintln!()
everywhere. -
The current implementation of
proc::wait()
is the best we can do, but feedback we got from seal-updater proves it is not always reliable.