Go to file
2023-07-12 00:52:39 +02:00
example_packagers Rename the example folder 2023-07-12 00:51:55 +02:00
src Improve summary error message 2023-07-12 00:46:13 +02:00
.gitignore Initial POC 2023-01-07 17:08:44 +01:00
Cargo.lock Merge PreInstall commands 2023-06-28 22:46:56 +02:00
Cargo.toml Merge PreInstall commands 2023-06-28 22:46:56 +02:00
README.md Tick the TODO done, add an optional sub-point 2023-07-12 00:52:39 +02:00

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)
  • 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 sudos 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 Updaters struct
  • Have subcommands to interactively act on packagerss 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