/
githubmirror
/
libeconf
Обзор
Документация
Войти
/
githubmirror
/
libeconf
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v0.7.7
docs/index.html
117 строк
7 KB
Tobias Stoeckmann
Fix typos (#212)
20 авг 2024, 15:09
Не верифицирован
20 авг 2024, 15:09
edaadab
Код
Авторство
О чём код?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.14"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libeconf: libeconf</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libeconf  <span id="projectnumber">0.7.1</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.14 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('index.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">libeconf </div> </div> </div><!--header--> <div class="contents"> <div class="textblock"><p><b>libeconf</b> is a highly flexible and configurable library to parse and manage key=value configuration files. It reads configuration file snippets from different directories and builds the final configuration file for the application from it.</p> <p>The first file is the vendor provided configuration file places in /usr/_vendordir_/_project_. Optionally, /run/_project_ is also supported for ephemeral overrides.</p> <p><em>Defining <em>project</em> sub directory is optional.</em></p> <p>There are two methods of overriding this vendor settings: Copy the file from /usr/_vendordir_/_project_ to /etc/_project_ and modify the settings (see <em>Example 1</em>).</p> <p>Alternatively, a directory named <em>file</em>._suffix_.d/ within /etc/_project_ can be created, with drop-in files in the form <em>name</em>._suffix_ (see <em>Example 2</em>).</p> <p>These files contain only the changes of the specific settings the user is interested in. There can be several such drop-in files, they are processed in lexicographic order of their filename.</p> <p>The first method is useful to override the complete configuration file with an own one, the vendor supplied configuration is ignored.</p> <p>So, if /etc/_project_/_example_._suffix_ exists, /usr/_vendor_/_project_/_example_._suffix_ and /run/_project_/_example_._suffix_ will not be read. The disadvantage is, that changes of the vendor configuration file, due e.g. an package update, are ignored and the user has to manually merge them.</p> <p>The other method will continue to use /usr/_vendor_/_project_/_example_._suffix_ as base configuration file and merge all changes from /etc/_project_/_example_._suffix_.d/*._suffix_. So the user will automatically get improvements of the vendor, with the drawback, that they could be incompatible with the user made changes.</p> <p>If there is a file with the same name in /usr/_vendor_/_project_/_example_._suffix_.d/ and in /etc/_project_/_example_._suffix_.d/*._suffix_., the file in /usr/_project_/_vendor_/_example_._suffix_.d/ will completely ignored.</p> <p>To disable a configuration file supplied by the vendor, the recommended way is to place a symlink to /dev/null in the configuration directory in /etc/_project_/, with the same filename as the vendor configuration file.</p> <p>Optionally, schemes with only drop-ins and without a ‘main’ configuration file will be supported too. In such schemes many drop-ins are loaded from a common directory in each hierarchy. For example, /usr/lib/_project_.d/*, /run/_project_.d/* and /etc/_project_.d/c.conf are all loaded and parsed in this scheme.</p> <p><b>Example 1</b></p> <p>If a /etc/_example_._suffix_ file exists:</p> <ul> <li>/etc/_example_._suffix_</li> <li>/usr/_vendor_/_project_/_example_._suffix_.d/*._suffix_</li> <li>/run/_project_/_example_._suffix_.d/*._suffix_</li> <li>/etc/_project_/_example_._suffix_.d/*._suffix_</li> </ul> <p><b>Example 2</b></p> <p>The list of files and directories read if <b>no</b> /etc/_example_._suffix_ file exists:</p> <ul> <li>/usr/_vendor_/_project_/_example_._suffix_ if no /run/_project_/_example_._suffix_ exist</li> <li>/usr/_vendor_/_project_/_example_._suffix_.d/*._suffix_</li> <li>/run/_project_/_example_._suffix_.d/*._suffix_</li> <li>/etc/_project_/_example_._suffix_.d/*._suffix_</li> </ul> <p>The libeconf library fulfills all requirements defined by the <b>Linux Userspace API (UAPI) Group</b> chapter "Configuration Files Specification". See: :<a href="https://uapi-group.org/specifications/specs/configuration_files_specification/">https://uapi-group.org/specifications/specs/configuration_files_specification/</a></p> <h2>API</h2> <p>The API is written in plain C. The description can be found here :<a href="https://opensuse.github.io/libeconf/">https://opensuse.github.io/libeconf/</a></p> <h2>Bindings for other languages</h2> <ul> <li><a href="https://github.com/openSUSE/libeconf/blob/v0.7.0/bindings/python3/">Python</a> (<a href="https://github.com/openSUSE/libeconf/blob/v0.6.0/bindings/python3/docs/python-libeconf.3">Documentation</a></li> <li><a href="https://github.com/openSUSE/libeconf/blob/v0.7.0/bindings/csharp/">C#</a> (https://github.com/openSUSE/libeconf/blob/v0.6.0/bindings/csharp/docs/README.md "Documentation") </li> </ul> </div></div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li> </ul> </div> </body> </html>