Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xyproto/setconf
:green_book: Change settings in configuration text files
https://github.com/xyproto/setconf
configuration utility
Last synced: 5 days ago
JSON representation
:green_book: Change settings in configuration text files
- Host: GitHub
- URL: https://github.com/xyproto/setconf
- Owner: xyproto
- License: gpl-2.0
- Created: 2011-12-23T14:48:30.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2024-07-27T19:39:15.000Z (3 months ago)
- Last Synced: 2024-10-19T05:19:54.168Z (18 days ago)
- Topics: configuration, utility
- Language: Python
- Homepage: https://setconf.roboticoverlords.org
- Size: 352 KB
- Stars: 46
- Watchers: 5
- Forks: 5
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
![Setconf Logo](web/setconflogo.png)
![Build](https://github.com/xyproto/setconf/workflows/Build/badge.svg) [![License](https://img.shields.io/badge/license-GPL2-green.svg?style=flat)](https://raw.githubusercontent.com/xyproto/setconf/main/COPYING)
Setconf is a small utility for changing settings in configuration textfiles.
It has no dependencies except the built-in Python modules.
Pull requests are welcome.
[![Packaging status](https://repology.org/badge/vertical-allrepos/setconf.svg)](https://repology.org/project/setconf/versions)
Compile time features
---------------------* It can be compiled to native with nuitka. Try these parameters: `--exe --lto --python-version=2.7`
TODO
----* A flag for changing the n'th occurence.
* A cleaner way to handle arguments, without adding an external dependency.
* A flag for commenting out keys (adding "# ")
* A flag for removing a value instead of using `''`.
* A flag for removing both the key and the value.
* Rewrite in a different language?
* Optimize the code that is used for adding options with `-a`.
* A way to add an option with `-a` after a given string occurs.
* Test and fix the combination of `-a` and multiline markers.
* Fix the behavior when `"` is the multiline marker and `:` the delimiter (the [yml](https://fdik.org/yml/) format).
* Document which assignment symbols and comment markers are supported.
* Refactor.
* Support both `#define` and `%define` (ref asmttpd).
* When changing settings in JSON files, a line may look like this: `"go.formatTool": "gofmt",`. Add a flag for being able to set the key and value without having to specify the quotes and the final comma.Changes from 0.7.6 to 0.7.7
---------------------------* Apply fix for trailing newlines by @zappolowski (issue #16).
* Also test with Python 3.8.Changes from 0.7.5 to 0.7.6
---------------------------* Add test cases.
* Allow uncommenting keys without providing a value.
* Update documentation.Changes from 0.7.4 to 0.7.5
---------------------------* Can now uncomment configuration options with the `-u` flag.
* Uncommenting and setting values also works on Linux kernel configuration (`#CONFIG_KERNEL_XY is not set` to `CONFIG_KERNEL_XY=y`).Changes from 0.7.3 to 0.7.4
---------------------------* Correctly formatted help text.
Changes from 0.7.2 to 0.7.3
---------------------------* Can change single-line `#define` values by using the `-d` flag.
Changes from 0.7.1 to 0.7.2
---------------------------
* Fixed an issue that only happened on Python 3.2.
* Several minor changes.Changes from 0.7 to 0.7.1
-------------------------
* Removed a dependency on chardetChanges from 0.6.8 to 0.7
-------------------------
* Fix issue #6, a failing testcase for `+=`.Changes from 0.6.7 to 0.6.8
---------------------------
* Deal mainly with bytes instead of strings.
* Handle ISO-8859-1 (Latin1) better, for Python 3.Changes from 0.6.6 to 0.6.7
---------------------------
* Can use floating point numbers together with `+=` and `-=`Changes from 0.6.5 to 0.6.6
---------------------------
* Fixed a problem with files without newline endingsChanges from 0.6.4 to 0.6.5
---------------------------
* Can now use += or -= for increasing or decreasing integer valuesChanges from 0.6.3 to 0.6.4
---------------------------
* Better error messages when write permissions are deniedChanges from 0.6.2 to 0.6.3
---------------------------
* Fixed a problem with -a that occurred when a key existed but was commented out
* Added regression testChanges from 0.6.1 to 0.6.2
---------------------------
* Now runs on Python 2 and Python 3 (tested with 2.4, 2.5, 2.6, 2.7 and 3.3)Changes from 0.6 to 0.6.1
-------------------------
* Fixed a problem with the -a option
* Creates the file when -a or --add is given, if neededChanges from 0.5.3 to 0.6
-------------------------
* Made -a add options only when not already presentChanges from 0.5.2 to 0.5.3
---------------------------
* Made it compile with the latest version of shedskin
* Added an option -a for adding keys/values to a fileChanges from 0.5.1 to 0.5.2
---------------------------
* Fixed a problem with ascii/utf-8 encodingChanges from 0.5 to 0.5.1
-------------------------
* Fixed a problem with => assignments
* Changed the way files are opened with open()
* Added more tests relating to ascii/utf-8Changes from 0.4 to 0.5
-----------------------
* Add support for => as well
* Fixed a bug where comments were not ignored for multiline values
* New logoChanges from 0.3.2 to 0.4 (released)
------------------------------------
* Ignored configuration options that are commented outGeneral information
-------------------* License: GPL2
* Author: Alexander F. Rødseth