@hugojosefson/duplicati-generate-config
v3.0.1
Published
Generate duplicati backup configs from a flat file
Downloads
2
Readme
@hugojosefson/duplicati-generate-config
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.
Prerequisite
Node.js, at least v13.2.0
.
Recommended to install latest via nvm:
nvm install stable
Usage
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
Template file format
Export an existing configuration from duplicati, and use that file.
Definitions file format
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/
Programmatic access
You can also import
the module, and use its exported functions programmatically.
API
Table of Contents
generateWriteSpecs
Converts duplicati template file contents, and backup definition flat file contents, into definitions of what to write to disk.
Parameters
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
readFile
Reads a file.
Parameters
filename
string Filename to read from.
Returns Promise<String> A Promise of the contents of the file.
writeFile
Writes to a file.
Parameters
Returns Promise<String> A Promise of the filename written.
Example API usage
Implementation of the generate
CLI command, shows how the above API is used: