[fix] update readme
This commit is contained in:
		
							parent
							
								
									4c81704049
								
							
						
					
					
						commit
						895cab87b4
					
				
							
								
								
									
										48
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								README.md
									
									
									
									
									
								
							| @ -5,31 +5,61 @@ Based on the Masters Book of Serious Sysadmin's Best Practices Chapter, this scr | ||||
| ## Crash course | ||||
| 
 | ||||
| ``` | ||||
| wget https://this.repo.srs.ly/alban/changelog/bla/bla/raw/changelog | ||||
| wget https://git.interhacker.space/alban/changelog/raw/branch/master/changelog.sh | ||||
| chmod +x changelog | ||||
| sudo ./changelog | ||||
| sudo -E ./changelog | ||||
| ``` | ||||
| 
 | ||||
| ## How it works | ||||
| 
 | ||||
| The script will ask for your name if no `CHANGELOG_USERNAME` environment variable is found. | ||||
| 
 | ||||
| Then it will ask for a first change informations: | ||||
| Then it will ask for change informations: | ||||
| 
 | ||||
| * The nature of the change: which software / domain did you change? Why? | ||||
| * Some comments: How did you do it? What was happening? Is it fixed? | ||||
| 
 | ||||
| You can then add multiple lines for a single change as well as multiple changes for a changelog entry (ex: deploy a new service and remove old packages). | ||||
| 
 | ||||
| This changelog entry is now inserted on top of the /etc/changelog file, which is created with a default entry if not present yet. | ||||
| 
 | ||||
| **Limitations** | ||||
| 
 | ||||
| * Please note that to enter multiline comments, you have for now to escape newline characters using the `\\\\n` sequence. Ugly.  | ||||
| * Please note that to enter multiline comments, you have for now to escape newline characters using the `\\\\n` sequence. Ugly. | ||||
| 
 | ||||
| * By default, it will attempt to create and edit `/etc/changelog`. You better be running it as root, by default. | ||||
| 
 | ||||
| ## Plugins and config | ||||
| 
 | ||||
| # Possible improvements | ||||
| You can add plugins to hook actions at two points in time. The `plugins-available` directory contains two working examples of these hooks. | ||||
| 
 | ||||
| * Enable a sudo requirement / ways to restart oneself as a root user | ||||
| * Enable simple multiline comments | ||||
| * Provide a way to attach files | ||||
| * Provide a way (plugins?) to report each change to a central server | ||||
| * adding a changelog entry lines. Example `content-hastebin.sh` plugin pushes a file content to a pastebin service | ||||
| * saving the changelog. Example `output-changelog-server.sh` plugin pushes a changelog to a remote central server | ||||
| 
 | ||||
| You can activate the plugins by placing/linking them in the `plugins-enabled` directory. | ||||
| 
 | ||||
| The plugins might need some configuration variables. | ||||
| 
 | ||||
| Do `mv config.sample.sh config.sh` and edit the file to suit your needs. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## Baking a fat exec | ||||
| 
 | ||||
| While providing a mean to run plugins is cool, it's not very efficient at deployment time. | ||||
| 
 | ||||
| Run `build.sh` to get a single exec, ready for shipping, embedding: | ||||
| 
 | ||||
| * your config.sh file | ||||
| * all the plugins you added to plugins-enabled | ||||
| 
 | ||||
| ## Possible improvements | ||||
| 
 | ||||
| * [x] Enable a sudo requirement / ways to restart oneself as a root user | ||||
| * [] Enable simple multiline comments | ||||
| * [x] Provide a way to attach files | ||||
| * [x] Provide a way (plugins?) to report each change to a central server | ||||
| * [x] Provide a build system to cook config and plugins in a single exec | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user