feat(cli): added "aur add" command
	
		
			
	
		
	
	
		
			
				
	
				ci/woodpecker/pr/docs Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/lint Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/build Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/docker Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/man Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/test Pipeline was successful
				
					Details
				
			
		
	
				
					
				
			
				
	
				ci/woodpecker/pr/docs Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/lint Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/build Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/docker Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/man Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/pr/test Pipeline was successful
				
					Details
				
			
		
	
							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