Generate duplicati backup configs from a flat file.
Currently hard-coded for:
TargetURL
expected to be for B2 Cloud Storage by Backblaze (b2://...
).- Filter expressions based on using linuxserver/duplicati in Docker.
Node.js, at least v13.2.0
.
Recommended to install latest via nvm:
nvm install stable
Just have the requisite Node.js installed, then:
npx @hugojosefson/duplicati-generate-config \
template-duplicati-config.json \
definitions.txt
Will read from definitions.txt
, outputting config files to current directory, using
template-duplicati-config.json
as template.
See also:
# show available commands, currently only 'generate'
npx @hugojosefson/duplicati-generate-config --help
# show available options for the 'generate' command
npx @hugojosefson/duplicati-generate-config generate --help
Export an existing configuration from duplicati, and use that file.
Example definitions.txt
:
# 1st line of every block is name of backup set.
# 2nd line is source directory.
# Following lines are exclusions.
# Empty line denotes end of block, and that backup set.
virtual-machines/Keep to b2 backblaze
/home/me/virtual-machines/Keep
Videos/programming to b2 backblaze
/home/me/Videos/Programming
Important Downloads to b2 backblaze
/home/me/Important Downloads
code/old-stuff to b2 backblaze
/home/me/code/old-stuff
*/node_modules/
*/target/
code to b2 backblaze
/home/me/code
/home/me/code/old-stuff/
*/node_modules/
*/target/
/home/me to b2 backblaze
/home/me
/home/me/code/
/home/me/virtual-machines/
/home/me/Important Downloads/
/home/me/Downloads/
/home/me/duplicati/backups/
/home/me/lost+found/
/home/me/Videos/
/home/me/.Trash-1000/
*/node_modules/
*/target/
You can also import
the module, and use its exported functions programmatically.
Converts duplicati template file contents, and backup definition flat file contents, into definitions of what to write to disk.
options
Objectoptions.template
Promise<String> Promise of the contents of the duplicati template config file.options.definitions
Promise<String> Promise of the contents of the backup definitions flat file.options.outputDir
String Where to say in the returned writeDefinition to write the files. (optional, default"."
)options.namePrefix
String Prepended to each backup set name the definitions, to the resulting config file. (optional, default""
)options.nameSuffix
String Appended to each backup set name the definitions, to the resulting config file. (optional, default" to b2 backblaze"
)options.sourcePathPrefix
String Prepended to each source path in the definitions, to the resulting config file. (optional, default"/source"
)options.outputFilenamePrefix
String Prepended to each written config filename. (optional, default""
)options.outputFilenameSuffix
String Appended to each written config filename. (optional, default"-duplicati-config.json"
)
Returns Promise<[{filename, contents}]> A Promise definitions of what to write to disk
Reads a file.
filename
string Filename to read from.
Returns Promise<String> A Promise of the contents of the file.
Writes to a file.
Returns Promise<String> A Promise of the filename written.
Implementation of the generate
CLI command, shows how the above API is used: