norgbackup/norg/borg/extract.nim

26 lines
828 B
Nim

import ../model/config_type
import ../model/log_type
import execute
import strformat
import os
proc isEmpty(dir: string): bool =
var count = 0
for idx, f in walkDir(dir): return false
#count += 1
return count == 0
proc extractArchive*(nc: NorgConfig, repo: Repository): int =
let archive = fmt"{repo.path}::{nc.args.archive}"
var further_args = nc.args.further_args
if nc.args.extract_destination != "":
discard existsOrCreateDir(nc.args.extract_destination)
setCurrentDir(nc.args.extract_destination)
let dir = getCurrentDir()
if dir.isEmpty():
info "Restoring..."
let ok = run genCommand(cmd = "extract", repo = archive, further_args = further_args)
return ok
else:
error "Not restoring to non-empty destination\r\nPlease use the --destination flag or cd to an empty directory."