github.com/digineo/go-uci (go): Package uci implements a binding to OpenWrt's UCI (Unified Configuration Interface) files in pure Go.  The typical use case is reading and modifying UCI config options:  For more details head over to the OpenWrt wiki, or dive into UCI's C source code:  The lexer is heavily inspired by Rob Pike's 2011 GTUG Sydney talk "Lexical Scanning in Go" (https://talks.golang.org/2011/lex.slide, https://youtu.be/HxaD_trXwRE), which in turn was a presentation of an early version of Go's text/template parser. It follows, that this library borrows code from Go's standard library (BSD-style licensed).  The UCI grammar (for the purpose of this library) is defined as follows:  For now, UCI imports/exports (packageDecl production) are not supported yet. The STRING token (value production) is also somewhat vaguely defined, and needs to be aligned with the actual C implementation.
Keywords: configuration|configuration-management|go|lexer|native|openwrt|parser|uci