Skip to content

Releases: dbohdan/initool

v1.0.0

18 Nov 10:05
Compare
Choose a tag to compare
  • Added scripts to modify the INI file in place.
  • The command-line interface of initool should be considered stable.

Some comments on the release

initool is old enough and packaged widely enough that significant changes to the CLI would break other people's work. initool has to be deΒ facto stable, and the version number should reflect it.

I don't think initool will get a lot more feature development. Bug fixes will be the majority of work from this point on. Most feature requests will not be accepted.

initool is hampered by being written in Standard ML. It has been a fun experiment to develop initool in this rare and elegant programming language. Unfortunately, Standard ML lacks some basic libraries, like an implementations of regular expressions with string replacement, not to mention Unicode support. This limits what you can reasonably do with it. If I resume feature development, it will be with a new major version ported to another language.

v0.18.0

11 Jun 07:51
Compare
Choose a tag to compare
  • Implemented a new command, replace.
  • Made small improvements to the documentation.

v0.17.0

23 May 14:10
Compare
Choose a tag to compare
  • Fixed byte-order mark detection. It was broken for files with more than one line.
  • Added an alternative wildcard character, _ (underscore). The * wildcard never worked on Windows because binaries compiled with MoSML expand * to a list of files.
  • Wildcards can be escaped using \: \*, \_. A leading slash is now removed from the section-name argument and the key argument.
  • The test suite has been ported to Windows. Windows builds are now tested just like Linux and Mac builds. This will help prevent Windows-only bugs in the future.

Making _ a wildcard and the introduction of escaping with a leading slash break compatibility with previous versions (in a relatively minor way).

v0.16.0

20 May 12:45
Compare
Choose a tag to compare
  • Initool will now exit with an encoding error when it sees the UTF-16 or UTF-32 BOM. (This means -p/--pass-through no longer passes through UTF-16 and UTF-32 files. It is no big loss because initool couldn't act on them anyway.)

v0.15.0

19 May 09:58
Compare
Choose a tag to compare
  • Added a global option -p/--pass-through.
  • We now build Linux and macOS binaries.

v0.14.1

16 Nov 08:44
Compare
Choose a tag to compare
  • Fixed a bug where initool would exit with success (status zero) when a property wasn't deleted.

v0.14.0

13 Oct 20:30
Compare
Choose a tag to compare
  • Initool now prints normal help to standard output instead of standard error. This minor breaking change restores how help worked before version 0.10.0.
  • Build and infrastructure were improved.

v0.13.0

18 Sep 14:34
Compare
Choose a tag to compare
  • Added a new global option -i/--ignore-case.
  • Implemented wildcards. A wildcard (*) section name or key matches everything.
  • Repeated keys and section names are handled correctly. Commands act on every copy. exist and get ... --value-only did not work correctly for repeated items before.

This release includes changes that break compatibility, one major (exit status) and two minor.

  • get, set, delete can exit with non-zero status. The previous approach of never doing this made it easier for mistakes to go unnoticed. Sorry if this breaks your script. It was a mistake to keep the old behavior for so long.
  • Initool no longer prints the section name on get existing-section missing-property. It is not clear it helped users in any way. It might have been confusing, creating the impression that the section was empty when it may or may not have been. (This change only affects getting a nonexistent property. Initool gets an empty section like it did before. Deleting everything from a section does not delete the section itself, since an empty section's presence may have meaning.)
  • Initool no longer prints a blank line when there is nothing to output from get or delete.

v0.12.0

12 Aug 09:36
Compare
Choose a tag to compare

Added error messages with contextual usage information. Instead of the full help message, initool will show you the arguments you gave and usage for the command you were trying to use. It will display the list of possible commands when it does not recognize the command.

For example, when you issue the command

initool g tests/php.ini PHP engine --v

the error message will be

invalid usage: g tests/php.ini PHP engine --v
usage: g <filename> [<section> [<key> [-v|--value-only]]]

rather than

usage: initool <command> [<arg> ...]

commands:
    get <filename> [<section> [<key> [-v|--value-only]]]
    exists <filename> <section> [<key>]
    set <filename> <section> <key> <value>
    delete <filename> <section> [<key>]

    help
    version

Each command can be abbreviated to its first letter.

v0.11.0

27 Jul 14:50
Compare
Choose a tag to compare
  • Fixed adding top-level properties to a file with properties only in sections. They were erroneously added to the last section.
  • Added long commands. For example, you can use exists instead of e. This change is fully backwards-compatible; short commands remain supported. You can also use the flag -v instead of --value-only.
  • Improved the usage message.