📗 Change settings in configuration text files
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
testcases Add a multiline testcase that fails Sep 14, 2018
web Minor changes to the web page Aug 10, 2018
.gitignore Add a setup.py Apr 4, 2016
.travis.yml Add a way to change #defines Sep 20, 2016
COPYING COPYING: refresh file Oct 18, 2017
MANIFEST.in
README.md
makerelease Added a script for packging up a tarball Mar 15, 2013
pypi.md Update pypi notes Oct 18, 2017
setconf.1 Add option for uncommenting values when setting keys Oct 4, 2017
setconf.py Allow uncommenting without giving a value Feb 2, 2018
setup.cfg Add a setup.py Apr 4, 2016
setup.py Add option for uncommenting values when setting keys Oct 4, 2017

README.md

setconf

Build Status

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.

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 format).
  • Document which assignment symbols and comment markers are supported.
  • Refactor.
  • Support both #define and %define (ref asmttpd).

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 chardet

Changes 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 endings

Changes from 0.6.4 to 0.6.5

  • Can now use += or -= for increasing or decreasing integer values

Changes from 0.6.3 to 0.6.4

  • Better error messages when write permissions are denied

Changes 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 test

Changes 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 needed

Changes from 0.5.3 to 0.6

  • Made -a add options only when not already present

Changes 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 file

Changes from 0.5.1 to 0.5.2

  • Fixed a problem with ascii/utf-8 encoding

Changes 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-8

Changes from 0.4 to 0.5

  • Add support for => as well
  • Fixed a bug where comments were not ignored for multiline values
  • New logo

Changes from 0.3.2 to 0.4 (released)

  • Ignored configuration options that are commented out

General information

  • License: GPL2
  • Author: Alexander F Rødseth