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.