| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 |
|
| 19 | (define-module (gnu services configuration utils)
|
| 20 | #:use-module (ice-9 string-fun)
|
| 21 | #:export (uglify-snake-case))
|
| 22 |
|
| 23 | (define (uglify-snake-case field-name)
|
| 24 | "Serializes FIELD-NAME, a field name from @code{(gnu services configuration)},
|
| 25 | to a downcased, snake case string representation of the field name. Trailing
|
| 26 | @code{?} in the name are dropped and dashes are replaced with underscores.
|
| 27 |
|
| 28 | For example the procedure would convert @code{'A-Field?} to @code{\"a_field\"}."
|
| 29 | (define str (symbol->string field-name))
|
| 30 | (string-downcase
|
| 31 | (string-replace-substring
|
| 32 | (if (string-suffix? "?" str)
|
| 33 | (string-drop-right str 1)
|
| 34 | str)
|
| 35 | "-" "_")))
|