Súčasťou údržby systému Arch Linux je aktívne čítanie najnovších správ. Takmer každý, kto používa Arch, sa stretol s touto radou: pred aktualizáciou si prečítaj správy! Inými slovami, pred spustením obávaného príkazu sudo pacman -Syu by sa mal človek pripraviť na prípadné rozbiehavé zmeny tým, že si o nich najprv prečíta.

Smutná realita je, že ľudia sú leniví. Ja som lenivý. Buď zabudnem správy prečítať, alebo ich hrubo ignorujem, aby som mal potom falošné právo chvástiť sa na sociálnych sieťach, koľko škody mi to napáchalo. No dobre, sieť - publikujem príspevky len vo Fediverse. Prial by som si, keby mi systém pred inštaláciou povedal, aby som si správy prečítal.

Typy hookov #

Samozrejme, existuje spôsob, ako to urobiť automaticky. Správca balíkov Arch Linuxu, pacman, ponúka funkcionalitu nazvanú hooky. O hookoch som písal predtým pri zjednodušovaní yadm alebo hackovaní Cypress-u a dokonca pri automatizácii kalendára (to už nepoužívam). Všetky boli git hooky.

Pacman však používa iný typ hooku, alpm hook. Skratka znamená Arch Linux Package Management. Hoci dokumentácia vyzerá veľmi solídne, musím priznať, že toto je presne ten typ veci, ktorý nechcem študovať. Z môjho chápania by som ho pravdepodobne mohol použiť len pre tento jeden prípad použitia - zabrániť pacmanu aktualizovať systém pred prečítaním čerstvých správ. Ibaže by som sa stal prispievateľom alebo správcom Archu alebo niečím podobným. Prajem si, aby to niekto urobil za mňa.

Enter Informant #

Našťastie, niekto to už urobil. Pacman hook, ktorý zabraňuje aktualizácii, pokiaľ používateľ nepotvrdí, že čítal správy. Volá sa Informant. Som dosť prekvapený, že som sa o ňom nedozvedel skôr - stránka o údržbe systému o čítaní pred aktualizáciou systému ho spomína od novembra 2019. To asi hovorí niečo o tom, ako málo som venoval pozornosť tomu konkrétnemu odseku. Lepšie neskoro ako nikdy.

Informant je presne ten typ technológie, ktorá automatizuje celý pracovný tok, šetrí čas a kognitívnu kapacitu - čo by podľa mňa malo byť zmyslom automatizácie. Podrobnosti o použití sú popísané v README projektu. Po inštalácii manuálne alebo cez AUR stačí jednorazový príkaz na prvé čítanie a potom je to nastavené a zabudnuté. Veľmi pohodlné.

Vnútorné fungovanie #

Hooky sú v skutočnosti vo svojej podstate zvyčajne dosť jednoduché a možno sa ich bojím len kvôli strachu z neznámeho. Veď git hooky som sa už naučil používať a teraz mi pripadajú jednoduché. Zvedavosť ma priviedla k pohľadu na alpm hook za Informantom.

[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = *

[Action]
Description = Checking Arch News with Informant ...
When = PreTransaction
Exec = /usr/bin/informant check
AbortOnFail

Z tohto pohľadu hook nevyzerá vôbec záhadne - len malé stráviteľné, samovysvetľujúce kúsky. Samozrejme, po hlbšom prieskume je /usr/bin/informant v skutočnosti Python skript, ktorý okrem iného sťahuje správy a sleduje už prečítané. Ale teraz, keď vidím, že pacman hooky nie sú až tak strašidelné, možno sa nájdem pri automatizácii niečoho v oblasti správy balíkov. Rád by som počul nejaké zaujímavé nápady!

Toto je 26. príspevok z #100daystooffload.