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