On Tue, Nov 11, 2008 at 6:13 PM, Chris Brannon <cmbrannon@cox.net> wrote:
"Aaron Griffin" <aaronmgriffin@gmail.com> writes:
is related to the AUR backend daemon (tupkgupdate ?), which is in the AUR repository. A rewrite would be HUGELY appreciated.... the steps are simple: find new packages in upload dir, add to pacman DB, add to mysql DB. It's not all that hard, yet the current daemon runs through ALL packages when it does this, IIRC
I had a look at the tupkgupdate code. The main source of I/O seems to be the following loop:
a_files = pkgbuildsInTree(pkgbuild_dir) for a_file in a_files: pkgname, ver, desc, url, depends, sources, category = \ infoFromPkgbuildFile(a_file)
infoFromPkgbuildFile forks and execs bash to process a PKGBUILD.
All of the code that deals with binary packages only extracts information from filenames, as far as I can tell.
Would it be reasonable to use timestamps to determine which packages have been updated?
Ah, it's all PKGBUILDs, not all packages. It would make more sense to use the package files first, and then find the corresponding PKGBUILD, instead of scanning all PKGBUILDs and checking for the package file. Still, keeping a "last run" timestamp somewhere, and scanning for all PKGBUILDs newer than that timestamp should be ok. At least it will reduce the IO