Usage
This is a nim client for the Arch User Repository (AUR).
It's a simple wrapper around the Aurweb RPC interface which allows searching the AUR for information about packages.
import aur, options # retrieve information about a specific package let pkg = info("google-chrome") if pkg.isSome: echo pkg.get().description echo pkg.get().numVotes echo pkg.get().maintainer # search for packages let pkgs = search(QueryBy.Maintainer, keyword="luzifer") for pkg in pkgs: echo pkg.name echo pkg.description
Types
AurPackage = object of RootObj id*: int name*: string pkgBaseId*: int pkgBase*: string version*: string description*: string url*: string numVotes*: int popularity*: float outOfDate*: Option[DateTime] maintainer*: string firstSubmitted*: DateTime lastModified*: DateTime urlPath*: Uri
- Package information.
AurPackageInfo = object of AurPackage depends*: seq[string] makeDepends*: seq[string] optDepends*: seq[string] conflicts*: seq[string] provides*: seq[string] replaces*: seq[string] groups*: seq[string] licence*: seq[string] keywords*: seq[string]
- Detailed package information.
QueryBy {...}{.pure.} = enum Name = "name", NameDesc = "name-desc", Maintainer = "maintainer", Depends = "depends", Makedepends = "makedepends", Optdepends = "optdepends", Checkdepends = "checkdepends"
-
Search criteria.
Name Search by package name only.
NameDesc Search by package name and description.
Maintainer Search by package maintainer.
Depends Search for packages that depend on keywords.
Makedepends Search for packages that makedepend on keywords.
Optdepends Search for packages that optdepend on keywords.
Checkdepends Search for packages that checkdepend on keywords.
QueryError = object of CatchableError
- Raised if the AUR responded with an application level error.
IllegalKeywordError = object of QueryError
- Raised if a supplied search keyword length is shorter than 2 charcters
Procs
proc search(by: QueryBy = NameDesc; keyword: string): seq[AurPackage] {...}{.raises: [ KeyError, ValueError, JsonKindError, IOError, OSError, JsonParsingError, Exception, HttpRequestError, LibraryError, SslError, TimeoutError, ProtocolError, QueryError, IllegalKeywordError], tags: [ReadIOEffect, WriteIOEffect, RootEffect, TimeEffect].}
-
Search the AUR for packages.
by specifies the search criteria, defaults to NameDesc.
keyword the keyword to search for.
proc info(pkgNames: seq[string]): seq[AurPackageInfo] {...}{.raises: [KeyError, ValueError, JsonKindError, IOError, OSError, JsonParsingError, Exception, HttpRequestError, LibraryError, SslError, TimeoutError, ProtocolError, QueryError], tags: [ReadIOEffect, WriteIOEffect, RootEffect, TimeEffect].}
-
Retrieve detailed package information for each package in pkgNames.
Under the hood, issues only one request to the AUR.
proc info(pkgNames: varargs[string]): seq[AurPackageInfo] {...}{.raises: [KeyError, ValueError, JsonKindError, IOError, OSError, JsonParsingError, Exception, HttpRequestError, LibraryError, SslError, TimeoutError, ProtocolError, QueryError], tags: [ReadIOEffect, WriteIOEffect, RootEffect, TimeEffect].}
-
Retrieve detailed package information for each package in pkgNames.
Under the hood, issues only one request to the AUR.
proc info(pkgName: string): Option[AurPackageInfo] {...}{.raises: [KeyError, ValueError, JsonKindError, IOError, OSError, JsonParsingError, Exception, HttpRequestError, LibraryError, SslError, TimeoutError, ProtocolError, QueryError], tags: [ReadIOEffect, WriteIOEffect, RootEffect, TimeEffect].}
- Retrieve detailed package information for package pkgName.