added config options for restic
This commit is contained in:
parent
aad6bf38d3
commit
f142e7b1cf
9 changed files with 62 additions and 30 deletions
|
@ -16,10 +16,6 @@ proc parseSourceDirectories*(in_conf: TomlValueRef): seq[string] =
|
||||||
norg_config.source_directories.add(dir.getStr())
|
norg_config.source_directories.add(dir.getStr())
|
||||||
return src_dirs
|
return src_dirs
|
||||||
|
|
||||||
proc parseEncryption*(enc_conf: TomlValueRef) =
|
|
||||||
setEncryptionPassphrase(enc_conf{"encryption_passphrase"}.getStr(""))
|
|
||||||
setEncryptionPassphraseFD(enc_conf{"encryption_passphrase_fd"}.getStr(""))
|
|
||||||
setEncryptionPassCommand(enc_conf{"encryption_passcommand"}.getStr(""))
|
|
||||||
|
|
||||||
proc parseRepositories*(rep_conf: TomlValueRef): seq[Repository] =
|
proc parseRepositories*(rep_conf: TomlValueRef): seq[Repository] =
|
||||||
var repos: seq[Repository] = @[]
|
var repos: seq[Repository] = @[]
|
||||||
|
@ -28,15 +24,25 @@ proc parseRepositories*(rep_conf: TomlValueRef): seq[Repository] =
|
||||||
var repo = Repository()
|
var repo = Repository()
|
||||||
repo.path = rtable["path"].getStr()
|
repo.path = rtable["path"].getStr()
|
||||||
repo.label = rtable["label"].getStr()
|
repo.label = rtable["label"].getStr()
|
||||||
|
if rtable.hasKey("tool"):
|
||||||
|
repo.tool = rtable["tool"].getStr("borg").toBackupTool()
|
||||||
repos.add(repo)
|
repos.add(repo)
|
||||||
|
echo repos
|
||||||
return repos
|
return repos
|
||||||
|
|
||||||
|
proc parseEncryption*(enc_conf: TomlValueRef) =
|
||||||
|
setEncryptionPassphrase(enc_conf{"encryption_passphrase"}.getStr(""))
|
||||||
|
setEncryptionPassphraseFD(enc_conf{"encryption_passphrase_fd"}.getStr(""))
|
||||||
|
setEncryptionPassphraseFile(enc_conf{"encryption_passphrase_file"}.getStr(""))
|
||||||
|
setEncryptionPassCommand(enc_conf{"encryption_passcommand"}.getStr(""))
|
||||||
|
|
||||||
|
|
||||||
proc parseConfigFile*(file: string): NorgConfig =
|
proc parseConfigFile*(file: string): NorgConfig =
|
||||||
norg_config = newNorgConfig()
|
norg_config = newNorgConfig()
|
||||||
let in_conf = parsetoml.parseFile(file)
|
let in_conf = parsetoml.parseFile(file)
|
||||||
norg_config.source_directories = parseSourceDirectories(in_conf)
|
norg_config.source_directories = parseSourceDirectories(in_conf)
|
||||||
parseEncryption(in_conf{"encryption"})
|
|
||||||
norg_config.repositories = parseRepositories(in_conf{"repositories"})
|
norg_config.repositories = parseRepositories(in_conf{"repositories"})
|
||||||
|
parseEncryption(in_conf{"encryption"})
|
||||||
norg_config.notifiers = parseNotifiers(in_conf)
|
norg_config.notifiers = parseNotifiers(in_conf)
|
||||||
norg_config.actions = parseActions(in_conf{"actions"})
|
norg_config.actions = parseActions(in_conf{"actions"})
|
||||||
norg_config.maintenance = parseMaintenance(in_conf{"maintenance"})
|
norg_config.maintenance = parseMaintenance(in_conf{"maintenance"})
|
||||||
|
|
|
@ -3,16 +3,25 @@ import os
|
||||||
proc setEncryptionPassphrase*(pw: string) =
|
proc setEncryptionPassphrase*(pw: string) =
|
||||||
if pw != "":
|
if pw != "":
|
||||||
putEnv("BORG_PASSPHRASE", pw)
|
putEnv("BORG_PASSPHRASE", pw)
|
||||||
|
putEnv("RESTIC_PASSWORD", pw)
|
||||||
|
|
||||||
proc setEncryptionPassphraseFD*(pw: string) =
|
proc setEncryptionPassphraseFD*(pw: string) =
|
||||||
if pw != "":
|
if pw != "":
|
||||||
putEnv("BORG_PASSPHRASE_FD", pw)
|
putEnv("BORG_PASSPHRASE_FD", pw)
|
||||||
|
|
||||||
|
proc setEncryptionPassphraseFile*(pw: string) =
|
||||||
|
if pw != "":
|
||||||
|
putEnv("RESTIC_PASSWORD_FILE", pw)
|
||||||
|
|
||||||
proc setEncryptionPassCommand*(pw: string) =
|
proc setEncryptionPassCommand*(pw: string) =
|
||||||
if pw != "":
|
if pw != "":
|
||||||
putEnv("BORG_PASSCOMMAND", pw)
|
putEnv("BORG_PASSCOMMAND", pw)
|
||||||
|
putEnv("RESTIC_PASSWORD_COMMAND", pw)
|
||||||
|
|
||||||
proc delEncryptionPassphraseInfo*() =
|
proc delEncryptionPassphraseInfo*() =
|
||||||
delEnv("BORG_PASSPHRASE")
|
delEnv("BORG_PASSPHRASE")
|
||||||
delEnv("BORG_PASSPHRASE_FD")
|
delEnv("BORG_PASSPHRASE_FD")
|
||||||
delEnv("BORG_PASSCOMMAND")
|
delEnv("BORG_PASSCOMMAND")
|
||||||
|
delEnv("RESTIC_PASSWORD")
|
||||||
|
delEnv("RESTIC_PASSWORD_FILE")
|
||||||
|
delEnv("RESTIC_PASSWORD_COMMAND")
|
||||||
|
|
|
@ -5,5 +5,6 @@ type
|
||||||
RESTIC = "restic"
|
RESTIC = "restic"
|
||||||
|
|
||||||
proc toBackupTool*(str: string): BackupTool =
|
proc toBackupTool*(str: string): BackupTool =
|
||||||
for cmd in BackupTool.items:
|
for tool in BackupTool.items:
|
||||||
if str == $cmd: return cmd
|
if str == $tool: return tool
|
||||||
|
return BORG
|
||||||
|
|
6
norg/restic/backup.nim
Normal file
6
norg/restic/backup.nim
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
import ../model/config_type
|
||||||
|
|
||||||
|
proc createBackup*(nc: NorgConfig, repo: Repository): int =
|
||||||
|
echo "Not Yet Implemented"
|
||||||
|
discard
|
||||||
|
|
5
norg/restic/extract.nim
Normal file
5
norg/restic/extract.nim
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
import ../model/config_type
|
||||||
|
|
||||||
|
proc extractArchive*(nc: NorgConfig, repo: Repository): int =
|
||||||
|
echo "Not Yet Implemented"
|
||||||
|
discard
|
6
norg/restic/init.nim
Normal file
6
norg/restic/init.nim
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
import ../model/config_type
|
||||||
|
|
||||||
|
proc initRepo*(nc: NorgConfig, repo: Repository): int =
|
||||||
|
echo "Not Yet Implemented"
|
||||||
|
discard
|
||||||
|
|
7
norg/restic/list.nim
Normal file
7
norg/restic/list.nim
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import ../model/config_type
|
||||||
|
|
||||||
|
proc listArchives*(nc: NorgConfig, repo: Repository): int =
|
||||||
|
echo "Not Yet Implemented"
|
||||||
|
discard
|
||||||
|
|
||||||
|
|
10
norg/restic/mount.nim
Normal file
10
norg/restic/mount.nim
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import ../model/config_type
|
||||||
|
|
||||||
|
proc mountArchive*(nc: NorgConfig, repo: Repository): int =
|
||||||
|
echo "Not Yet Implemented"
|
||||||
|
discard
|
||||||
|
|
||||||
|
proc unmountArchive*(nc: NorgConfig): int =
|
||||||
|
echo "Not Yet Implemented"
|
||||||
|
discard
|
||||||
|
|
|
@ -1,29 +1,11 @@
|
||||||
import ../model/config_type
|
import ../model/config_type
|
||||||
import ../utils/actions
|
import ../utils/actions
|
||||||
|
|
||||||
proc initRepo*(nc: NorgConfig, repo: Repository): int =
|
import init
|
||||||
echo "Not Yet Implemented"
|
import backup
|
||||||
discard
|
import list
|
||||||
|
import mount
|
||||||
proc createBackup*(nc: NorgConfig, repo: Repository): int =
|
import extract
|
||||||
echo "Not Yet Implemented"
|
|
||||||
discard
|
|
||||||
|
|
||||||
proc listArchives*(nc: NorgConfig, repo: Repository): int =
|
|
||||||
echo "Not Yet Implemented"
|
|
||||||
discard
|
|
||||||
|
|
||||||
proc mountArchive*(nc: NorgConfig, repo: Repository): int =
|
|
||||||
echo "Not Yet Implemented"
|
|
||||||
discard
|
|
||||||
|
|
||||||
proc unmountArchive*(nc: NorgConfig): int =
|
|
||||||
echo "Not Yet Implemented"
|
|
||||||
discard
|
|
||||||
|
|
||||||
proc extractArchive*(nc: NorgConfig, repo: Repository): int =
|
|
||||||
echo "Not Yet Implemented"
|
|
||||||
discard
|
|
||||||
|
|
||||||
proc execute*(nc: NorgConfig, repo: Repository) =
|
proc execute*(nc: NorgConfig, repo: Repository) =
|
||||||
case nc.args.command
|
case nc.args.command
|
||||||
|
|
Loading…
Reference in a new issue