#+title: Readme Systemd-parse is a common lisp library to parse =.service= files into useable data structures, and vice versa. It currently provides two functions: =read-service= and =write-service= * Read-service =read-service= takes a =.service= file and returns an association list. The list associates section names with a hash table of the options under each section. #+begin_src common-lisp (read-service "dbus.service") #+end_src The following sample is taken from =dbus.service=: #+begin_example [Unit] Description=D-Bus System Message Bus Documentation=man:dbus-broker-launch(1) [Service] Type=notify Sockets=dbus.socket OOMScoreAdjust=-900 [Install] Alias=dbus.service #+end_example This file is parsed into the following lisp structure: (I illustrate each table as "") #+begin_src common-lisp (("Unit" .
"D-Bus System Message Bus" "Documentation" -> "man:dbus-broker-launch(1)">) ("Service" .
"notify" "Sockets" -> "dbus.socket" "OOMScoreAdjust" -> "-900">) ("Install" .
"dbus.service">)) #+end_src * Write-service =write-service= translates the association list back into a =.service= file. #+begin_src common-lisp (write-service "test.service" my-service-options-list) #+end_src