Jako moje srdce emacsisty při pohledu na Scheme/Lisp zaplesalo, ale to je tak vše... Používat bych to rozhodně nechtěl.
(define sshd
(service
'(sshd ssh-daemon) ;the secure shell daemon
#:start (make-inetd-constructor ;start on demand
'("/usr/sbin/sshd" "-D" "-i")
(list (endpoint
(make-socket-address AF_INET INADDR_ANY 22))
(endpoint
(make-socket-address AF_INET6 IN6ADDR_ANY 22)))
#:max-connections 10)
#:stop (make-inetd-destructor)
#:respawn? #t))
(register-services (list sshd))
(start-in-the-background '(sshd))
Tady zase někomu v GNU úplně ujel vlak :).
10. 12. 2024, 13:56 editováno autorem komentáře
Já mám spíš problém s tím, že jde o živý - spustitelný kód, nikoli o neživý deklarativní dokument... Ale jinak mne překvapuje, kolik nenávisti se tu vůči Lispu/Scheme zvedlo, protože z jiných diskusí mám zase pocit, že tyhle přístupy jsou dost populární. Nicméně na českých fórech obecně převládají negativní komentáře, takže to zase tak překvapivé není.
" deklarativního způsobu definice služeb"
=== nekde za tim musi byt obrovsky moloch, tim vetsi a slozitejsi (a zabugovanejsi) cim vic chci tohoto nedosazitelneho cile dosahnout.
Treba by me zajimalo, japa se deklarativne overi, ze dana (obecne libovolna) sluzna bezi a je dostupna. A odpoved je ... nijak. Protoze pro kazdou jednu sluzbu (a pro kazdou jednu variantu jeji konfigurace) bych musel napsat nejake overovadlo.
To je prece kouzlo vsech deklarativnich jazyku: SQL, HTML, Ansible.
Rozhrani s uzivatelelem je jednoduche a citelne, vetsi mnozstvi prace udela pocitac a vas.
Samozrejme, ze health check nakonec musi nekdo napsat v imperativnim jazyce. Dneska ve svete Kubernetes a SpringBoot na to mate rozhrani a knihovny. Zadna velka prace to neni.