All Projects → hercules-team → Augeas

hercules-team / Augeas

Licence: lgpl-2.1
A configuration editing tool and API

Projects that are alternatives of or similar to Augeas

Senparc.co2net
支持 .NET Framework & .NET Core 的公共基础扩展库
Stars: ✭ 289 (-24.74%)
Mutual labels:  configuration
Chezmoi
Manage your dotfiles across multiple diverse machines, securely.
Stars: ✭ 5,590 (+1355.73%)
Mutual labels:  configuration
Icingaweb2 Module Director
The Director aims to be your new favourite Icinga config deployment tool. Director is designed for those who want to automate their configuration deployment and those who want to grant their “point & click” users easy access to the configuration.
Stars: ✭ 359 (-6.51%)
Mutual labels:  configuration
Hoplite
A boilerplate-free library for loading configuration files as data classes in Kotlin
Stars: ✭ 322 (-16.15%)
Mutual labels:  configuration
Config
The Config component helps you find, load, combine, autofill and validate configuration values of any kind, whatever their source may be (YAML, XML, INI files, or for instance a database).
Stars: ✭ 3,671 (+855.99%)
Mutual labels:  configuration
Config
⚙ Config.Net - the easiest configuration framework for .NET developers
Stars: ✭ 349 (-9.11%)
Mutual labels:  configuration
Dotfiles
My configuration. Minimalist, but helps save a few thousand keystrokes a day.
Stars: ✭ 284 (-26.04%)
Mutual labels:  configuration
Confy
🛋 Zero-boilerplate configuration management in Rust
Stars: ✭ 379 (-1.3%)
Mutual labels:  configuration
V2ray Step By Step
This repo is a fork of ToutyRater/v2ray-guide, we aim to provide a new step-by-step guide of v2ray
Stars: ✭ 341 (-11.2%)
Mutual labels:  configuration
Isopod
An expressive DSL and framework for Kubernetes configuration without YAML
Stars: ✭ 358 (-6.77%)
Mutual labels:  configuration
Jk
Configuration as Code with ECMAScript
Stars: ✭ 322 (-16.15%)
Mutual labels:  configuration
Admiral
Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh
Stars: ✭ 323 (-15.89%)
Mutual labels:  configuration
Craco
Create React App Configuration Override, an easy and comprehensible configuration layer for create-react-app
Stars: ✭ 5,285 (+1276.3%)
Mutual labels:  configuration
Duic
分布式配置中心,集中化配置管理,应用配置权限管理,配置实时更新等功能
Stars: ✭ 289 (-24.74%)
Mutual labels:  configuration
Nickel
Cheap configuration language
Stars: ✭ 367 (-4.43%)
Mutual labels:  configuration
Confuse
painless YAML config files for Python
Stars: ✭ 285 (-25.78%)
Mutual labels:  configuration
Confita
Load configuration in cascade from multiple backends into a struct
Stars: ✭ 344 (-10.42%)
Mutual labels:  configuration
Conform
Easy, powerful, and extendable configuration tooling for releases.
Stars: ✭ 384 (+0%)
Mutual labels:  configuration
Centraldogma
Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2
Stars: ✭ 378 (-1.56%)
Mutual labels:  configuration
Pyhocon
HOCON parser for Python
Stars: ✭ 355 (-7.55%)
Mutual labels:  configuration

Build Status

Introduction

Augeas is a library and command line tool that focuses on the most basic problem in handling Linux configurations programmatically: editing actual configuration files in a controlled manner.

To that end, Augeas exposes a tree of all configuration settings (well, all the ones it knows about) and a simple local API for manipulating the tree. Augeas then modifies underlying configuration files according to the changes that have been made to the tree; it does as little modeling of configurations as possible, and focuses exclusively on transforming the tree-oriented syntax of its public API to the myriad syntaxes of individual configuration files.

This focus on editing sets Augeas apart from any other configuration tool I know of. Hopefully, Augeas will form a more solid foundation on which these tools can be built; with a clean, simple API these tools should be able to focus more on their core concerns and less on the mechanics of running sed, grep, awk, etc. to tweak a config file.

If all you need is a tool to edit configuration files, you only need to concern yourself with the handful of public API calls that Augeas exposes (or their equivalent language bindings). However, to teach Augeas about a new file format, you need to describe that file format in Augeas's domain specific language (a very small subset of ML) Documentation for that language can be found on the Augeas website at http://augeas.net/ If you do that, please contribute the description if at all possible, or include it in the distribution of your software - all you need to do for that is add a couple of text files, there is no need to change existing code. Ultimately, Augeas should describe all config files commonly found on a Linux system.

Non-goals

Augeas is as much defined by the things it does not try to accomplish as by its goals:

  • No abstraction from native config format, i.e. the organization of the tree mirrors closely how the native config files are organized
  • No cross-platform abstraction - what is logically the same value may live in different places in the tree on different distributions. Dealing with that should be left to a higher-level tool
  • No remote management support. Augeas is a local API, other ways of access to Augeas should be built on top of it
  • No (or very little) modelling. Augeas is focused on syntax transformation, not on any higher-level understanding of configuration.

The above non-goals are of course important concerns in practice. Historically though, too many config mgmt projects have failed because they set their sights too high and tried to address syntax transformation, modelling, remote support, and scalable management all in one. That leads to a lack of focus, and to addressing each of those goals unsatisfactorily.

Building

These instructions apply to building a released tarball. If you want to build from a git checkout, see the file HACKING.

See the generic instructions in INSTALL. Generally,

  ./configure
  make && make install

should be all that is needed.

You need to have readline-devel installed. On systems that support SELinux, you should also install libselinux-devel.

Documentation

Documentation can be found on Augeas' website http://augeas.net/ The site also contains information on how to get in touch, what you can do to help etc.

License

Augeas is released under the Lesser General Public License, Version 2.1 See the file COPYING for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].