Add a readme
This commit is contained in:
		
							
								
								
									
										50
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
# 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](https://github.com/topgrade-rs/topgrade) for a solution that auto-detect everything it can.
 | 
			
		||||
 | 
			
		||||
# Roadmap
 | 
			
		||||
[X] Run commands found in different configuration files
 | 
			
		||||
[X] Have Pre / Post commands to do before / after the upgrade
 | 
			
		||||
[X] Do all the installations and give a summary of success and errors at the end
 | 
			
		||||
[X] Improve errors ^^'
 | 
			
		||||
[ ] Executors from a packagers need to be executed in order and only if all of the previous failed
 | 
			
		||||
[ ] 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/<DATETIME>-<packagerName>-<executorName?/stepNumber??>.log
 | 
			
		||||
[ ] Start self and command "Nicer" (Not sure it is possible in all systems, or in the same way)
 | 
			
		||||
[ ] Documentation
 | 
			
		||||
  [X] 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)
 | 
			
		||||
[ ] 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](https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.config_dir) 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.
 | 
			
		||||
```sh
 | 
			
		||||
sup
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# Installation
 | 
			
		||||
```sh
 | 
			
		||||
cargo install --locked system-updater
 | 
			
		||||
```
 | 
			
		||||
@@ -92,7 +92,7 @@ pub fn get_packages_folder(opt: &Opt) -> io::Result<PathBuf> {
 | 
			
		||||
            "System’s configuration folder: for its standard location see https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.config_dir",
 | 
			
		||||
        ))?
 | 
			
		||||
        .config_dir()
 | 
			
		||||
        .join("packages");
 | 
			
		||||
        .join("packagers");
 | 
			
		||||
 | 
			
		||||
    Ok(config_folder)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user