forked from vieter-v/vieter
				
			feat(console): add commands for removing repos, arch-repos, packages
							parent
							
								
									b7af051103
								
							
						
					
					
						commit
						cac74db086
					
				| 
						 | 
					@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## [Unreleased](https://git.rustybever.be/vieter-v/vieter/src/branch/dev)
 | 
					## [Unreleased](https://git.rustybever.be/vieter-v/vieter/src/branch/dev)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Added
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* CLI commands for removing packages, arch-repos & repositories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## [0.5.0-rc.2](https://git.rustybever.be/vieter-v/vieter/src/tag/0.5.0-rc.2)
 | 
					## [0.5.0-rc.2](https://git.rustybever.be/vieter-v/vieter/src/tag/0.5.0-rc.2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Added
 | 
					### Added
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,52 @@
 | 
				
			||||||
 | 
					module repos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cli
 | 
				
			||||||
 | 
					import conf as vconf
 | 
				
			||||||
 | 
					import client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Config {
 | 
				
			||||||
 | 
						address string [required]
 | 
				
			||||||
 | 
						api_key string [required]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// cmd returns the cli module that handles modifying the repository contents.
 | 
				
			||||||
 | 
					pub fn cmd() cli.Command {
 | 
				
			||||||
 | 
						return cli.Command{
 | 
				
			||||||
 | 
							name: 'repos'
 | 
				
			||||||
 | 
							description: 'Interact with the repositories & packages stored on the server.'
 | 
				
			||||||
 | 
							commands: [
 | 
				
			||||||
 | 
								cli.Command{
 | 
				
			||||||
 | 
									name: 'remove'
 | 
				
			||||||
 | 
									required_args: 1
 | 
				
			||||||
 | 
									usage: 'repo [arch [pkgname]]'
 | 
				
			||||||
 | 
									description: 'Remove a repo, arch-repo, or package from the server.'
 | 
				
			||||||
 | 
									flags: [
 | 
				
			||||||
 | 
										cli.Flag{
 | 
				
			||||||
 | 
											name: 'force'
 | 
				
			||||||
 | 
											flag: cli.FlagType.bool
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
									]
 | 
				
			||||||
 | 
									execute: fn (cmd cli.Command) ! {
 | 
				
			||||||
 | 
										config_file := cmd.flags.get_string('config-file')!
 | 
				
			||||||
 | 
										conf := vconf.load<Config>(prefix: 'VIETER_', default_path: config_file)!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if cmd.args.len < 3 {
 | 
				
			||||||
 | 
											if !cmd.flags.get_bool('force')! {
 | 
				
			||||||
 | 
												return error('Removing an arch-repo or repository is a very destructive command. If you really do wish to perform this operation, explicitely add the --force flag.')
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										client := client.new(conf.address, conf.api_key)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if cmd.args.len == 1 {
 | 
				
			||||||
 | 
											client.remove_repo(cmd.args[0])!
 | 
				
			||||||
 | 
										} else if cmd.args.len == 2 {
 | 
				
			||||||
 | 
											client.remove_arch_repo(cmd.args[0], cmd.args[1])!
 | 
				
			||||||
 | 
										} else {
 | 
				
			||||||
 | 
											client.remove_package(cmd.args[0], cmd.args[1], cmd.args[2])!
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,7 @@ import console.logs
 | 
				
			||||||
import console.schedule
 | 
					import console.schedule
 | 
				
			||||||
import console.man
 | 
					import console.man
 | 
				
			||||||
import console.aur
 | 
					import console.aur
 | 
				
			||||||
 | 
					import console.repos
 | 
				
			||||||
import cron
 | 
					import cron
 | 
				
			||||||
import agent
 | 
					import agent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,6 +49,7 @@ fn main() {
 | 
				
			||||||
			man.cmd(),
 | 
								man.cmd(),
 | 
				
			||||||
			aur.cmd(),
 | 
								aur.cmd(),
 | 
				
			||||||
			agent.cmd(),
 | 
								agent.cmd(),
 | 
				
			||||||
 | 
								repos.cmd(),
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	app.setup()
 | 
						app.setup()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue