example_packagers | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
Description
A tool to help keeping your system up to date.
This tool will remember the applications you installed and update them all (even from a git repo). To do that you will need to configure all the commands you want to run when upgrating your system (see the example_config
folder).
See also topgrade for a solution that auto-detect everything it can.
Roadmap
- Run commands found in different configuration files
- Have Pre / Post commands to do before / after the upgrade
- Do all the installations and give a summary of success and errors at the end
- Improve errors ^^'
- Executors from a packagers need to be executed in order and only if all of the previous failed
- Maybe test with
which
(the crate?) if the command exist before trying to execute it? (especially with admin rights)
- Maybe test with
- Tests
- Prevent the usage of
sudo
and equivalent, add a config to say "needAdminRights" - Parallel execution of commands
- Packagers need to state their dependency
- Show a progress bar general and the list of task in execution (with their stepNumber): "helix PostInstall (1/2)"
- All input should be prevented (even asking for
sudo
’s password) - All output (standard and errors) needs to be redirected in files. Maybe something like: /tmp/system-updater/--<executorName?/stepNumber??>.log
- Start self and command "Nicer" (Not sure it is possible in all systems, or in the same way)
- Documentation
- Readme
- Code
Nice to have
- Being usable as a lib (I set the minimum possible in main.rs but the insterface have not been thought out)
- Being given a directory and/or a list of files
- Being given an already populated
Updater
’s struct
- Have subcommands to interactively act on packagers’s config
- List
- Show
- Create
- Delete
- Update? (Bad way: Show + Delete + Create? ^^')
- More config examples
- System executors for all/most famous systems (openSUSE, Fedora, Arch, …)
- At least an example of binary downlowd (curl or wget)
Usage
The configuration folder is at the standard path for configuration on your system and the commads should be in the packagers subfolder.
Example on linux it is at ~/.config/systemupdater/packagers/
Just start the program, no option needed in you day to day usage.
sup
Installation
cargo install --locked system-updater