javaproperties-cli — Command-line manipulation of Java .properties files¶
GitHub | PyPI | Documentation | Issues | Changelog
javaproperties-cli
is a wrapper around the javaproperties
package (from
which it was split off) that provides programs for basic command-line
manipulation of Java .properties
files, including getting, setting, & deleting values
and converting to & from JSON.
Currently, the programs only support .properties
files in the simple
line-oriented format, not the XML variant.
javaproperties¶
NAME¶
javaproperties — Basic manipulation of Java .properties
files
SYNOPSIS¶
javaproperties get [<OPTIONS>] <file> <key> ...
javaproperties select [<OPTIONS>] <file> <key> ...
javaproperties set [<OPTIONS>] <file> <key> <value>
javaproperties delete [<OPTIONS>] <file> <key> ...
javaproperties format [<OPTIONS>] [<file>]
get¶
javaproperties get [<OPTIONS>] <file> <key> ...
Print out the values of the given keys in the given .properties
file. Each
value is printed out on a separate line with escape sequences interpolated.
If you want the output to also be in .properties
format, see select.
Options¶
-
-d
<value>
,
--default-value
<value>
¶ Default value for undefined keys. If this option is not specified, keys requested on the command line that are not defined in either the main
.properties
file or the--defaults
file will cause a warning to be printed to stderr and the command to exit with a failure status.
-
-D
<file>
,
--defaults
<file>
¶ .properties
file of default values. If this option is specified, keys requested on the command line that are not defined in the main.properties
file will be looked up in this file.
-
-e
,
--escaped
¶
Parse the keys and default value specified on the command line for
.properties
-style escape sequences (specifically, those supported byjavaproperties.unescape
)
-
-E
<encoding>
,
--encoding
<encoding>
¶ Specifies the encoding of the input file(s); default value:
iso-8859-1
(a.k.a. Latin-1). Output always uses the locale’s encoding.
select¶
javaproperties select [<OPTIONS>] <file> <key> ...
Print out the key-value entries in the given .properties
file for the given
keys. The output is in .properties
format, reformatted as though by
format.
Options¶
-
-A
,
--ascii
¶
New in version 0.6.0.
Escape all non-ASCII characters in the output with
\uXXXX
escape sequences. This overrides--unicode
. This is the default behavior.
-
-d
<value>
,
--default-value
<value>
¶ Default value for undefined keys. If this option is not specified, keys requested on the command line that are not defined in either the main
.properties
file or the--defaults
file will cause a warning to be printed to stderr and the command to exit with a failure status.
-
-D
<file>
,
--defaults
<file>
¶ .properties
file of default values. If this option is specified, keys requested on the command line that are not defined in the main.properties
file will be looked up in this file.
-
-e
,
--escaped
¶
Parse the keys and default value specified on the command line for
.properties
-style escape sequences (specifically, those supported byjavaproperties.unescape
)
-
-E
<encoding>
,
--encoding
<encoding>
¶ Specifies the encoding of the input and output files; default value:
iso-8859-1
(a.k.a. Latin-1)
-
-o
<file>
,
--outfile
<file>
¶ Write output to this file instead of standard output
-
-s
<sep>
,
--separator
<sep>
¶ Use
<sep>
as the key-value separator in the output; default value:=
set¶
javaproperties set [<OPTIONS>] <file> <key> <value>
Set the value of <key>
in the .properties
file <file>
to
<value>
and output the results. The other entries in the file (including
comments, possibly not including the timestamp; see below) will be left as-is.
Options¶
-
-A
,
--ascii
¶
New in version 0.6.0.
Escape all non-ASCII characters in the new key & value with
\uXXXX
escape sequences on output. This overrides--unicode
. This is the default behavior.
-
-e
,
--escaped
¶
Parse
<key>
and<value>
for.properties
-style escape sequences (specifically, those supported byjavaproperties.unescape
)
-
-E
<encoding>
,
--encoding
<encoding>
¶ Specifies the encoding of the input and output files; default value:
iso-8859-1
(a.k.a. Latin-1)
-
-o
<file>
,
--outfile
<file>
¶ Write output to this file instead of standard output
-
-s
<sep>
,
--separator
<sep>
¶ Separate
<key>
and<value>
in the output with<sep>
; default value:=
-
-T
,
--preserve-timestamp
¶
Do not modify the timestamp in the
.properties
file. By default, if a timestamp is found, it is updated to the current time, even if the rest of the file is unchanged.
delete¶
javaproperties delete [<OPTIONS>] <file> <key> ...
Remove all entries for the given keys from the given .properties
file and
output the results. The other entries in the file (including comments,
possibly not including the timestamp; see below) will be left as-is.
Options¶
-
-e
,
--escaped
¶
Parse the keys specified on the command line for
.properties
-style escape sequences (specifically, those supported byjavaproperties.unescape
)
-
-E
<encoding>
,
--encoding
<encoding>
¶ Specifies the encoding of the input and output files; default value:
iso-8859-1
(a.k.a. Latin-1)
-
-o
<file>
,
--outfile
<file>
¶ Write output to this file instead of standard output
-
-T
,
--preserve-timestamp
¶
Do not modify the timestamp in the
.properties
file. By default, if a timestamp is found, it is updated to the current time, even if the rest of the file is unchanged.
format¶
javaproperties format [<OPTIONS>] [<file>]
Normalize the formatting of the given .properties
file (or standard input
if no file is given) and output the results. All comments, excess whitespace,
invalid escapes, and duplicate keys are removed, and the entries are sorted
lexicographically.
Options¶
-
-A
,
--ascii
¶
New in version 0.6.0.
Escape all non-ASCII characters in the output with
\uXXXX
escape sequences. This overrides--unicode
. This is the default behavior.
-
-E
<encoding>
,
--encoding
<encoding>
¶ Specifies the encoding of the input and output files; default value:
iso-8859-1
(a.k.a. Latin-1)
-
-o
<file>
,
--outfile
<file>
¶ Write output to this file instead of standard output
-
-s
<sep>
,
--separator
<sep>
¶ Use
<sep>
as the key-value separator in the output; default value:=
json2properties¶
NAME¶
json2properties — Convert a JSON object to a Java .properties
file
SYNOPSIS¶
json2properties [<OPTIONS>] [<infile> [<outfile>]]
DESCRIPTION¶
Convert a JSON file infile
to a .properties
file and write the results
to outfile
. If not specified, infile
and outfile
default to
standard input and standard output, respectively.
The JSON document must be an object with scalar (i.e., string, numeric, boolean, and/or null) values; anything else will result in an error.
Output is sorted by key, and numeric, boolean, & null values are output using their JSON representations; e.g., the input:
{
"yes": true,
"no": "false",
"nothing": null
}
becomes:
#Mon Sep 26 18:57:44 UTC 2016
no=false
nothing=null
yes=true
OPTIONS¶
-
-A
,
--ascii
¶
New in version 0.6.0.
Escape all non-ASCII characters in the output with
\uXXXX
escape sequences. This overrides--unicode
. This is the default behavior.
-
-c
<comment>
,
--comment
<comment>
¶ New in version 0.5.0.
Show the given string as a comment at the top of the output
-
-E
<encoding>
,
--encoding
<encoding>
¶ Use
<encoding>
as the output encoding; default value:iso-8859-1
(a.k.a. Latin-1)
-
-s
<sep>
,
--separator
<sep>
¶ Use
<sep>
as the key-value separator in the output; default value:=
properties2json¶
NAME¶
properties2json — Convert a Java .properties
file to JSON
SYNOPSIS¶
properties2json [<OPTIONS>] [<infile> [<outfile>]]
DESCRIPTION¶
Convert a .properties
file infile
to a JSON object and write the
results to outfile
. If not specified, infile
and outfile
default
to standard input and standard output, respectively. The output is encoded in
UTF-8.
Changed in version 0.6.0: Output encoding is now always UTF-8 instead of being determined by the locale.
Changelog¶
v0.6.0 (2020-03-02)¶
Require
javaproperties
0.6.*Use
'javapropertiesreplace'
error handler when opening output filesGave javaproperties’ format, select, and set subcommands
--ascii
and--unicode
options for controlling the escaping of non-ASCII characters in outputGave properties2json and json2properties
--ascii
and--unicode
options for controlling the escaping of non-ASCII characters in outputproperties2json now always outputs UTF-8
By default, comments output by json2properties now have all non-ASCII characters escaped rather than all non-Latin-1 characters
v0.5.0 (2020-01-24)¶
Include installation instructions, GitHub links, and changelog in the Read the Docs site
Gave json2properties a
--comment <comment>
optionSupport Python 3.8
v0.4.1 (2018-09-18)¶
Drop support for Python 2.6 and 3.3
Support
javaproperties
0.5.0
v0.4.0 (2017-04-22)¶
Split off the command-line programs from
javaproperties
into a separate package,javaproperties-cli
v0.3.0 (2017-04-13)¶
Added the
PropertiesFile
class for preserving comments in files [#1]The
ordereddict
package is now required under Python 2.6
v0.2.1 (2017-03-20)¶
Bugfix to javaproperties command: Don’t die horribly on missing non-ASCII keys
PyPy now supported
v0.2.0 (2016-11-14)¶
Added a javaproperties command for basic command-line manipulating of
.properties
filesGave json2properties a
--separator
optionGave json2properties and properties2json
--encoding
optionsExported the
java_timestamp()
functionto_comment()
now converts CR LF and CR line endings inside comments to LFSome minor documentation improvements
v0.1.0 (2016-10-02)¶
Initial release
Installation¶
Just use pip (You have pip, right?) to install
javaproperties-cli
and its dependencies:
pip install javaproperties-cli
Quickstart¶
javaproperties get <file> <key> ...
Output the values of the given keys in the given .properties
file
javaproperties select <file> <key> ...
Output the key-value pairs for the given keys in the given .properties
file
javaproperties set <file> <key> <value>
Set <key>
in <file>
to <value>
and output the result
javaproperties delete <file> <key> ...
Output the given .properties
file with the given keys deleted
javaproperties format [<file>]
Reformat the given .properties
file, removing comments & extraneous
whitespace and putting keys in sorted order
json2properties [<infile> [<outfile>]]
Convert a JSON object to a .properties
file
properties2json [<infile> [<outfile>]]
Convert a .properties
file to a JSON object