forked from vieter-v/vieter
Compare commits
5 Commits
15b687fd61
...
1a940f2f98
| Author | SHA1 | Date |
|---|---|---|
|
|
1a940f2f98 | |
|
|
487b235727 | |
|
|
1b7cabdd74 | |
|
|
6336d801d3 | |
|
|
25d87fb5e6 |
|
|
@ -27,3 +27,6 @@ gdb.txt
|
|||
# Generated docs
|
||||
_docs/
|
||||
/man/
|
||||
|
||||
# VLS logs
|
||||
vls.log
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
URL to a PKGBUILD
|
||||
* Targets with kind 'url' can provide a direct URL to a PKGBUILD instead of
|
||||
providing a Git repository
|
||||
* CLI commands for searching the AUR & directly adding packages
|
||||
|
||||
### Changed
|
||||
|
||||
|
|
|
|||
|
|
@ -96,6 +96,14 @@ SigLevel = Optional
|
|||
Afterwards, you can update your system & install the `vieter` package for the
|
||||
latest official release or `vieter-git` for the latest development release.
|
||||
|
||||
### AUR
|
||||
|
||||
If you prefer building the packages locally (or on your own Vieter instance),
|
||||
there's the `[vieter](https://aur.archlinux.org/packages/vieter)` &
|
||||
`[vieter-git](https://aur.archlinux.org/packages/vieter-git)` packages on the
|
||||
AUR. These packages build using the `vlang-git` compiler package, so I can't
|
||||
guarantee that a compiler update won't temporarily break them.
|
||||
|
||||
## Building from source
|
||||
|
||||
The project [README](https://git.rustybever.be/vieter/vieter#building) contains
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#include "archive.h"
|
||||
|
||||
struct C.archive {}
|
||||
pub struct C.archive {}
|
||||
|
||||
// Create a new archive struct for reading
|
||||
fn C.archive_read_new() &C.archive
|
||||
|
|
@ -71,7 +71,7 @@ fn C.archive_filter_code(&C.archive, int) int
|
|||
|
||||
#include "archive_entry.h"
|
||||
|
||||
struct C.archive_entry {}
|
||||
pub struct C.archive_entry {}
|
||||
|
||||
// Create a new archive_entry struct
|
||||
fn C.archive_entry_new() &C.archive_entry
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
module aur
|
||||
|
||||
import cli
|
||||
import console
|
||||
import client
|
||||
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 {
|
||||
return cli.Command{
|
||||
name: 'aur'
|
||||
description: 'Interact with the AUR.'
|
||||
commands: [
|
||||
cli.Command{
|
||||
name: 'search'
|
||||
description: 'Search for packages.'
|
||||
required_args: 1
|
||||
execute: fn (cmd cli.Command) ? {
|
||||
c := aur.new()
|
||||
pkgs := c.search(cmd.args[0])?
|
||||
data := pkgs.map([it.name, it.description])
|
||||
|
||||
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' + '.')
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@ module db
|
|||
import sqlite
|
||||
import time
|
||||
|
||||
struct VieterDb {
|
||||
pub struct VieterDb {
|
||||
conn sqlite.DB
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import console.targets
|
|||
import console.logs
|
||||
import console.schedule
|
||||
import console.man
|
||||
import console.aur
|
||||
import cron
|
||||
|
||||
fn main() {
|
||||
|
|
@ -31,6 +32,7 @@ fn main() {
|
|||
logs.cmd(),
|
||||
schedule.cmd(),
|
||||
man.cmd(),
|
||||
aur.cmd(),
|
||||
]
|
||||
}
|
||||
app.setup()
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import os
|
|||
import util
|
||||
|
||||
// Represents a read archive
|
||||
struct Pkg {
|
||||
pub struct Pkg {
|
||||
pub:
|
||||
path string [required]
|
||||
info PkgInfo [required]
|
||||
|
|
|
|||
Loading…
Reference in New Issue