/aurum

Golden AUR helper

Primary LanguageShell

Aurum

gold (Au), chemical element, a dense lustrous yellow precious metal of Group 11 (Ib), Period 6, of the periodic table. Britannica

Why

I used to have an AUR helper that I wrote over the course of many years, always improving a little bit, but I was growing tired of its manual workflow.

So I decided to use something that:

  • Relied solely on AUR's RPC Interface;
  • Was simple, easy to read the source and understand (since I usually improve it from time to time);
  • Didn't require manual work from me (i.e. searching the packages, cloning the repo);
  • In fact, I didn't want it to rely on the git structure of the aur packages:
    • Whenever I manually updated the files, I got conflicts;
    • Whenever -git packages auto-updated their own versions, I got conflicts;
    • I had two sources of truth (pacman database and the git directory) to know which packages I cared about;

All in all, it was a good opportunity for me to rethink my workflow.

Cool, I want to try

Download/clone this repo, cd ~/.local/bin, ln -s <your path to aurum>/bin/aurum.

Usage

It currently has 3 commands:

  • aurum check checks your AUR packages for newer versions;
  • aurum sync <package> installs or updates an AUR package;
  • aurum refresh refreshes -git (or -hg, -svn...) packages;

Requires jq,expac and curl

Optionally, you can ln it to au instead of aurum since that's shorter and still correct.

I love it, want to contribute

The to-do list sits in the bin script. Sorry, hackish 1-person project. But overall, I plan on doing the following:

  • Porting to a higher level language (clojure + babashka seems like the choice for me);
  • Add a little bit of config;
  • Use XDG_CACHE to persist built packages as well as build folders;
  • Allow for adding patches and/or updating the PKGBUILD file before building;
  • Add search;
  • Reduce number of HTTP calls when checking versions by performing a single search w/ all items and iterating through the results (might be done after porting to another language).

That seems too much but I still want to help

Consider sponsoring me :)