forked from vieter-v/vieter
				
			Merge pull request 'AUR tools' (#263) from Chewing_Bever/vieter:aur-tools into dev
Reviewed-on: vieter-v/vieter#263v-0.3.1
						commit
						8a2b121cc7
					
				|  | @ -27,3 +27,6 @@ gdb.txt | |||
| # Generated docs | ||||
| _docs/ | ||||
| /man/ | ||||
| 
 | ||||
| # VLS logs | ||||
| vls.log | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ platform: ${PLATFORM} | |||
| 
 | ||||
| pipeline: | ||||
|   install-modules: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     pull: true | ||||
|     commands: | ||||
|       - export VMODULES=$PWD/.vmodules | ||||
|  | @ -16,7 +16,7 @@ pipeline: | |||
|       event: [push, pull_request] | ||||
| 
 | ||||
|   debug: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     commands: | ||||
|       - export VMODULES=$PWD/.vmodules | ||||
|       - make | ||||
|  | @ -26,7 +26,7 @@ pipeline: | |||
|         exclude: [main] | ||||
| 
 | ||||
|   prod: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     environment: | ||||
|       - LDFLAGS=-lz -lbz2 -llzma -lexpat -lzstd -llz4 -lsqlite3 -static | ||||
|     commands: | ||||
|  | @ -44,7 +44,7 @@ pipeline: | |||
|       event: [push, pull_request] | ||||
| 
 | ||||
|   upload: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     secrets: [ s3_username, s3_password ] | ||||
|     commands: | ||||
|       # https://gist.github.com/JustinTimperio/7c7115f87b775618637d67ac911e595f | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ pipeline: | |||
|       - make docs | ||||
| 
 | ||||
|   api-docs: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     pull: true | ||||
|     group: 'generate' | ||||
|     commands: | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ skip_clone: true | |||
| 
 | ||||
| pipeline: | ||||
|   prepare: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     pull: true | ||||
|     secrets: [ s3_username, s3_password ] | ||||
|     commands: | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ platform: 'linux/amd64' | |||
| 
 | ||||
| pipeline: | ||||
|   lint: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     pull: true | ||||
|     commands: | ||||
|       - make lint | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ skip_clone: true | |||
| 
 | ||||
| pipeline: | ||||
|   generate: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     pull: true | ||||
|     commands: | ||||
|       - curl -o vieter -L "https://s3.rustybever.be/vieter/commits/$CI_COMMIT_SHA/vieter-linux-amd64" | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ platform: ${PLATFORM} | |||
| 
 | ||||
| pipeline: | ||||
|   install-modules: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     pull: true | ||||
|     commands: | ||||
|       - export VMODULES=$PWD/.vmodules | ||||
|  | @ -18,7 +18,7 @@ pipeline: | |||
|       event: [pull_request] | ||||
| 
 | ||||
|   test: | ||||
|     image: 'chewingbever/vlang:latest' | ||||
|     image: 'chewingbever/vlang:0.3' | ||||
|     pull: true | ||||
|     commands: | ||||
|       - export VMODULES=$PWD/.vmodules | ||||
|  |  | |||
|  | @ -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 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| FROM chewingbever/vlang:latest AS builder | ||||
| FROM chewingbever/vlang:0.3 AS builder | ||||
| 
 | ||||
| ARG TARGETPLATFORM | ||||
| ARG CI_COMMIT_SHA | ||||
|  |  | |||
							
								
								
									
										4
									
								
								PKGBUILD
								
								
								
								
							
							
						
						
									
										4
									
								
								PKGBUILD
								
								
								
								
							|  | @ -5,9 +5,9 @@ pkgbase='vieter' | |||
| pkgname='vieter' | ||||
| pkgver='0.3.0' | ||||
| pkgrel=1 | ||||
| pkgdesc="Vieter is a lightweight implementation of an Arch repository server." | ||||
| pkgdesc="Lightweight Arch repository server & package build system" | ||||
| depends=('glibc' 'openssl' 'libarchive' 'sqlite') | ||||
| makedepends=('git' 'vieter-v') | ||||
| makedepends=('git' 'vlang') | ||||
| arch=('x86_64' 'aarch64') | ||||
| url='https://git.rustybever.be/vieter-v/vieter' | ||||
| license=('AGPL3') | ||||
|  |  | |||
|  | @ -5,9 +5,9 @@ pkgbase='vieter-git' | |||
| pkgname='vieter-git' | ||||
| pkgver=0.2.0.r25.g20112b8 | ||||
| pkgrel=1 | ||||
| pkgdesc="Vieter is a lightweight implementation of an Arch repository server." | ||||
| pkgdesc="Lightweight Arch repository server & package build system (development version)" | ||||
| depends=('glibc' 'openssl' 'libarchive' 'sqlite') | ||||
| makedepends=('git' 'vieter-v') | ||||
| makedepends=('git' 'vlang') | ||||
| arch=('x86_64' 'aarch64') | ||||
| url='https://git.rustybever.be/vieter-v/vieter' | ||||
| license=('AGPL3') | ||||
|  |  | |||
|  | @ -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' + '.') | ||||
| 					} | ||||
| 				} | ||||
| 			}, | ||||
| 		] | ||||
| 	} | ||||
| } | ||||
|  | @ -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() | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue