J S
3eb4b2d5d8
I added a documentation readme. I added a license (GPLv3) SPLIT-LINE now deletes SETTING from the hash-table if it is passed "SETTING=nil". READ-SYSTEM now explicitly uses string= to identify sections in the associative list.
46 lines
1.3 KiB
Org Mode
46 lines
1.3 KiB
Org Mode
#+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 "<table /content/>")
|
|
#+begin_src common-lisp
|
|
(("Unit" . <table "Description" -> "D-Bus System Message Bus"
|
|
"Documentation" -> "man:dbus-broker-launch(1)">)
|
|
("Service" . <table "Type" -> "notify"
|
|
"Sockets" -> "dbus.socket"
|
|
"OOMScoreAdjust" -> "-900">)
|
|
("Install" . <table "Alias" -> "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
|