IMPORTANT: This is a fork of
update-conf.py
with the goal to test AWS CodePipeline as well as the whole AWS Code* stack. This project should NOT be used in production.Also, the code will be stored into 2 repos: CodeCommit, to better test the full AWS Code* stack; GitHub, as Coveralls free plan only supports it.
Generate config files from conf.d
like directories.
Split your config file into smaller files, called snippets, in a conf.d
like directory. The generated config file will be the concatenation of all snippets, with snippets ordered by the lexical order of their names.
Files ending with .bak
, .old
and other similar terminations will be ignored.
This project was based on the update-conf.d project.
This project works in Python 3 (3.7 or newer).
To install:
pip install update-conf-py-do-not-use
To install via AWS CodeArtifact:
CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token \
--domain test --query authorizationToken --output text)
AWS_ACCOUNT=$(aws sts get-caller-identity --query "Account" --output text)
pip install update-conf-py-do-not-use \
-i https://aws:${CODEARTIFACT_AUTH_TOKEN}@test-${AWS_ACCOUNT}.d.codeartifact.us-east-1.amazonaws.com/pypi/pypi/simple/
It's possible to clone the project in AWS CodeCommit and install it via setuptools
:
git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/update-conf-py-DO-NOT-USE
cd update-conf-py-DO-NOT-USE
python setup.py install
To generate a config file, you can run something like this:
update-conf-py-do-not-use -f /etc/snmp/snmpd.conf
The example above will merge the snippets in the directory /etc/snmp/snmpd.conf.d
into the file /etc/snmp/snmpd.conf
.
If the directory containing the snippets uses a diferent name pattern, you can pass its name as an argument:
update-conf-py-do-not-use -f /etc/snmp/snmpd.conf -d /etc/snmp/snmpd.d
It's also possible to define frequently used options in a config file. For example, in /etc/update-conf-py-do-not-use.conf
:
[snmpd]
file = /etc/snmp/snmpd.conf
dir = /etc/snmp/snmpd.d
Now, you can run:
update-conf-py-do-not-use -n snmpd
To get help:
update-conf-py-do-not-use --help
update-conf-py-do-not-use
will use the global config file (/etc/update-conf-py-do-not-use.conf
) or the user-home config file (~/.update-conf-py-do-not-use.conf
) if they exist.
You can use the the sample config file (provided within the distributed package) as a start point:
cp ${prefix}/share/update-conf-py-do-not-use/update-conf-py-do-not-use.conf /etc/update-conf-py-do-not-use.conf
It's also possible to pass a custom config file via command line args:
update-conf-py-do-not-use -c my_custom_config.conf -n snmpd
Suppose you have 2 snippets. One is /etc/snmp/snmpd.conf.d/00-main
:
syslocation Unknown
syscontact Root <root@localhost>
And the other is /etc/snmp/snmpd.conf.d/01-permissions
:
rocommunity public 192.168.0.0/24
After running update-conf-py-do-not-use -f /etc/snmp/snmpd.conf
, the generated config file will be:
# Auto-generated by update-conf-py-do-not-use
# Do NOT edit this file by hand. Your changes will be overwritten.
syslocation Unknown
syscontact Root <root@localhost>
rocommunity public 192.168.0.0/24
There are cases when it's useful to change the prefix used in the auto-generated comment. After running update-conf-py-do-not-use -f /etc/php.ini -p ';'
, the generated config will start with:
; Auto-generated by update-conf-py-do-not-use
; Do NOT edit this file by hand. Your changes will be overwritten.
It's also possible to set the prefix used in the auto-generated comment via config file. For instance, in /etc/update-conf-py-do-not-use.conf
:
[php]
file = /etc/php.ini
dir = /etc/php.d
prefix_comment = ;
This software is released under the Revised BSD License.
Check the CHANGELOG page.
If you want to contribute with this project, check the CONTRIBUTING page.
- Publish this software in a Ubuntu PPA.