forked from vieter-v/vieter
feat(cli): added "aur add" command
parent
487b235727
commit
1a940f2f98
|
@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
URL to a PKGBUILD
|
URL to a PKGBUILD
|
||||||
* Targets with kind 'url' can provide a direct URL to a PKGBUILD instead of
|
* Targets with kind 'url' can provide a direct URL to a PKGBUILD instead of
|
||||||
providing a Git repository
|
providing a Git repository
|
||||||
|
* CLI commands for searching the AUR & directly adding packages
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,16 @@ module aur
|
||||||
|
|
||||||
import cli
|
import cli
|
||||||
import console
|
import console
|
||||||
|
import client
|
||||||
import vieter_v.aur
|
import vieter_v.aur
|
||||||
|
import vieter_v.conf as vconf
|
||||||
|
|
||||||
|
struct Config {
|
||||||
|
address string [required]
|
||||||
|
api_key string [required]
|
||||||
|
}
|
||||||
|
|
||||||
|
// cmd returns the cli module for interacting with the AUR API.
|
||||||
pub fn cmd() cli.Command {
|
pub fn cmd() cli.Command {
|
||||||
return cli.Command{
|
return cli.Command{
|
||||||
name: 'aur'
|
name: 'aur'
|
||||||
|
@ -21,6 +29,34 @@ pub fn cmd() cli.Command {
|
||||||
println(console.pretty_table(['name', 'description'], data)?)
|
println(console.pretty_table(['name', 'description'], data)?)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
cli.Command{
|
||||||
|
name: 'add'
|
||||||
|
usage: 'repo pkg-name [pkg-name...]'
|
||||||
|
description: 'Add the given AUR package(s) to Vieter. Non-existent packages will be silently ignored.'
|
||||||
|
required_args: 2
|
||||||
|
execute: fn (cmd cli.Command) ? {
|
||||||
|
config_file := cmd.flags.get_string('config-file')?
|
||||||
|
conf := vconf.load<Config>(prefix: 'VIETER_', default_path: config_file)?
|
||||||
|
|
||||||
|
c := aur.new()
|
||||||
|
pkgs := c.info(cmd.args[1..])?
|
||||||
|
|
||||||
|
vc := client.new(conf.address, conf.api_key)
|
||||||
|
|
||||||
|
for pkg in pkgs {
|
||||||
|
vc.add_target(
|
||||||
|
kind: 'git'
|
||||||
|
url: 'https://aur.archlinux.org/$pkg.package_base' + '.git'
|
||||||
|
repo: cmd.args[0]
|
||||||
|
) or {
|
||||||
|
println('Failed to add $pkg.name: $err.msg()')
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
println('Added $pkg.name' + '.')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue