props-command
v0.12.0
Published
Command-line tool to manipulate Java properties files
Downloads
5
Readme
props-command
Command-line tool to manipulate Java properties files
Installation
npm install -g props-command
Usage
Synopsis
$ props <command> <command-args> [<global-options>]
Command List
merge
: Merge a properties file into an other properties file.sort
: Sort by keys.format
: Alias for sort command.subset
: Select a subset of properties according to a pattern for keys.from-xlsx
: Extract properties file from an XLSX (Excel) file.
Global options
--no-backup
: There will no more backup made for overwritten files.
merge
$ props merge <from-properties-file> <into-properties-file>
Each property of <from-properties-file>
is added to <into-properties-file>
. For each property with same key inside the two files, the value from <from-properties-file>
is used to overwrite the property in <into-properties-file>.
from-xlsx
$ props from-xlsx <from-excel-file> <excel-file-structure-description> <into-properties-file>
Each property extracted from <from-excel-file>
is added to <into-properties-file>
. For each property with same key inside the two files, the value from <from-excel-file>
is used to overwrite the property in <into-properties-file>
.
If <into-properties-file>
file does not exist, it will be created.
<excel-file-structure-description>
is a JSON file describing where properties keys and values are stored in the Excel file. See sample below:
{
"sheet": "Sheet 1",
"keyColumn": "I",
"valueColumn": "H",
"firstLine": 2,
"escape": true
}
escape
option specify if special characters like \
must be escaped. Default value is false
.
Filter
In order to skip some lines, it's possible to define a filter, testing a particular column for a particular value.
{
"sheet": "Sheet 1",
"keyColumn": "I",
"valueColumn": "H",
"firstLine": 2,
"escape": true,
"filter": {
"column": "C",
"value": "OK"
}
}
Multiple sheets
It's possible to extract properties from multiple sheets, using sheets
field instead of sheet
field.
{
"sheets": [
"Sheet1",
"Sheet2"
],
"keyColumn": "I",
"valueColumn": "H",
"firstLine": 2,
"escape": true,
"filter": {
"column": "C",
"value": "OK"
}
}
to-json
$ props to-json <properties-file> <json-file>
Each property extracted from <properties-file>
is added to <json-file>
. For each property key containing some dot, a proper nested object is created. For each property with same key inside the two files, the value from <properties-file>
is used to overwrite the property in <json-file>
.
If <json-file>
file does not exist, it will be created.