From 54f9391e064fd0ec2857135839a24b317f09b6a0 Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Mon, 23 May 2016 21:11:02 +0200 Subject: [PATCH] Support forcing a full backup --- bindata.go | 4 ++-- configfile.go | 26 +++++++++++++++++++------- help.txt | 3 ++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/bindata.go b/bindata.go index dcc815a..de87772 100644 --- a/bindata.go +++ b/bindata.go @@ -68,7 +68,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _helpTxt = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x93\x3f\x73\xdb\x30\x0c\xc5\x77\x7d\x0a\x8c\xed\xa0\x64\xcf\xd6\x8b\x2f\x53\x87\x5e\x7b\xbd\x0e\x3e\x0f\x30\x05\x49\xbc\xd0\xa4\x0e\x04\x93\xda\x43\x3f\x7b\xc1\x3f\x76\xe4\xa4\xde\xca\x4d\xe4\xc3\x8f\x4f\x8f\xc0\x2f\xc6\x65\x21\x06\xe4\x90\xfc\x00\x43\x5a\x9c\x35\x56\x8e\x20\x01\x0c\x13\x0a\xc1\x1e\xcd\x73\x5a\xe0\xd5\xca\x0c\x8e\x62\x84\x19\x4f\x27\x47\x5d\xf7\x33\xe2\x44\x0f\x1d\xbc\x55\xf5\x4d\xbb\x35\xe1\x70\x40\x3f\xec\xba\xee\xcb\x0b\x5a\x87\x7b\x47\xf0\x58\xf7\x62\xae\x68\xba\x1b\xeb\xf1\xea\x62\x34\x26\xf0\x60\xfd\x94\x3d\xc9\x7c\xd9\xe7\xa4\x6e\x94\x65\x1c\xa1\xbf\x09\xdb\x90\x23\x65\xe5\x3a\xfa\x2d\x8c\x9e\x42\x8a\xab\xff\x1c\x6d\xa5\x38\x1b\xa5\x37\x89\x99\xbc\xf4\x65\x73\x4d\xf9\xaa\xa7\xb1\x40\xea\x91\x09\x5e\xd0\x7a\x1a\xc0\xfa\x95\x27\xe5\x30\x45\x09\x4c\xb0\xcd\x42\x58\x50\xe6\x1d\x6c\x05\x79\x22\xd9\x01\x7c\xaf\xa7\x11\xa2\xfe\x8f\xab\x34\xb8\x87\xc1\x72\xf9\xb9\x22\xcb\x5f\x64\x54\x76\x5c\xe3\x2e\x88\xf5\xba\xe0\xe8\x85\xf8\x28\xf3\x39\xa4\x8f\x9c\x28\x28\x29\xde\x0a\xfc\x47\xd2\xa7\x61\x7b\xaa\x39\x35\x6d\x18\xaf\xd2\xa6\x25\x44\xdb\x68\x7a\x9b\x1d\x8f\x37\x9f\x2f\x1c\x16\xcc\xae\x5a\x69\x0e\x4b\x53\x8d\x80\x93\x66\x16\x05\x5c\x30\xe8\x5a\xf2\xdd\x93\xc3\xa9\xf4\x44\xdf\xab\x70\xb4\x53\xdf\x42\xe9\xc7\x6b\x68\x3e\x4b\x8c\x62\x83\x87\x31\x68\x60\xb3\x5d\x3f\xe4\x6b\xed\xe4\xee\x96\xab\xf3\xfa\xb4\xa1\x11\x93\x93\x07\xf8\x73\x7f\x57\x6f\xbc\x7f\xdf\xc0\x77\x47\x3c\xb8\xcf\xc5\x93\x7a\x7d\xbe\x38\x72\xd7\xa8\xa7\xbc\xad\x79\xcf\xc1\x0d\x25\xab\x2c\x7e\xf3\xd6\x1c\x69\xdf\x91\x49\xd9\xf6\xff\xf1\x96\x2f\xa9\xde\x06\xda\xa7\x29\xfb\x1a\x3e\xa2\xbe\xb1\xf5\xb2\x8a\xa7\x4d\x64\xcc\x7e\x43\x92\x25\x49\x45\xb0\xf4\x9c\x7c\x86\xf8\xf7\x88\x4d\x00\x04\xd1\x16\x2b\x8a\x3c\xff\x5a\x08\x66\x46\x3f\x95\x91\xe9\x7b\xed\x83\x98\x9f\xe3\x5f\xab\x18\xa8\x33\xd3\xc6\x0a\x16\x0e\x13\xe3\x01\xce\x65\xea\x47\xc3\xb1\x12\xbb\xbf\x01\x00\x00\xff\xff\xd7\x01\xa8\x37\x87\x04\x00\x00") +var _helpTxt = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x94\x31\x73\xdb\x3c\x0c\x86\x77\xfd\x0a\x8c\xdf\x37\x28\xde\xb3\xf5\xe2\xf3\xd4\xa1\xd7\x5e\xaf\x83\xcf\x03\x4c\x41\x12\x2f\x34\xa9\x03\xc1\xa4\xf6\xd0\xdf\x5e\x90\x54\x14\xc5\x8e\xb7\x62\x33\x09\x3c\x7c\xf5\x02\xf0\x2f\xc6\x69\x22\x06\xe4\x90\x7c\x07\x5d\x9a\x9c\x35\x56\xce\x20\x01\x0c\x13\x0a\xc1\x11\xcd\x73\x9a\xe0\xd5\xca\x08\x8e\x62\x84\x11\x2f\x17\x47\x4d\xf3\x33\xe2\x40\x8f\x0d\xbc\x57\xb5\x73\xee\xde\x84\xd3\x09\x7d\x77\x68\x9a\x2f\x2f\x68\x1d\x1e\x1d\xc1\x53\x3d\x8b\xb9\x62\xce\xdb\x80\xf5\x86\xe1\x3a\x9e\x3e\x3c\x8c\xc6\x04\xee\xac\x1f\xb2\x26\x19\x97\x73\x4e\xaa\x46\x59\x7d\x72\xee\x06\xb1\xc4\x2e\xb0\xa1\x58\xea\xca\xf7\xd8\xe0\x21\xf4\x80\xb5\xac\xa2\x14\x62\x1c\xa1\x57\xe8\xe7\xb1\x25\x47\x2a\x28\x43\xe8\xb7\x30\x7a\x0a\x29\xae\xcc\xea\x6d\x95\xe2\x6c\x94\xd6\x24\x66\xf2\xd2\x96\xc3\x35\xe5\xab\xde\x56\x25\xf5\xca\x04\x2f\x68\x3d\x75\xea\xc2\xea\xc3\x94\xc3\x14\x25\x30\xc1\x3e\x27\xc2\x84\x32\x1e\x60\x2f\xc8\x03\xc9\x01\xe0\x7b\xbd\x8d\x10\xd5\x14\x57\x69\x6a\x65\x67\xb9\x38\x54\xd2\xf2\x2f\x32\x9a\x76\x5e\xe3\x16\xc4\x3a\x16\x1c\xbd\x10\x9f\x65\x7c\x73\xfa\x96\x13\x05\x25\xc5\x7b\x4e\xff\x48\xda\x5f\xb6\x97\xea\xd3\x9c\xab\x56\xaf\x5b\x46\x53\x88\x76\xa6\xe9\x6b\xb6\x3f\xdf\xa3\xe9\xb4\x4c\x98\x55\xcd\xa5\xd9\x2c\x75\x35\x02\x0e\xea\x59\x14\x70\xc1\xa0\x9b\x9d\x6f\x76\x0e\x87\x32\x58\x6d\xab\x89\xbd\x1d\xda\xd9\x94\xb6\xff\x08\xcd\x77\x89\xeb\x18\xf4\x41\x0d\x1b\xed\xba\x91\xaf\x75\x1d\x9a\xfb\xf3\x54\xe3\xbf\x2d\xf5\x98\x9c\x3c\xc2\x9f\xcd\x43\x7d\x71\x73\xbd\x05\x0f\x67\x3c\xb9\xff\x8b\x26\xd5\xfa\xbc\x28\xba\x1a\xd6\x5d\x3e\x56\xbf\xc7\xe0\xba\xe2\x55\x4e\x7e\xd7\x36\x2b\xd2\xb9\x23\x93\xb2\xec\x7f\xa3\x2d\x3f\x52\xb5\x75\x74\x4c\x43\xd6\xd5\xdd\xa2\xbe\xb1\xf5\xb2\xb2\x67\x5e\xeb\x98\xf5\x86\x24\x53\x92\x8a\x60\x69\x39\xf9\x0c\xf1\xd7\x88\x6d\xd0\x5d\x13\x1d\xb1\x92\x91\xff\x44\xb4\x10\xcc\x88\x7e\x28\x2b\xd3\xb6\x3a\x07\x31\xb7\xe3\xb3\x28\x02\xe6\xed\xad\x6b\x05\x13\x87\x81\xf1\x04\x6f\x65\xaa\x47\xcd\xb1\x12\x9b\xbf\x01\x00\x00\xff\xff\xde\xa9\xe5\x3d\xcc\x04\x00\x00") func helpTxtBytes() ([]byte, error) { return bindataRead( @@ -83,7 +83,7 @@ func helpTxt() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "help.txt", size: 1159, mode: os.FileMode(420), modTime: time.Unix(1463914687, 0)} + info := bindataFileInfo{name: "help.txt", size: 1228, mode: os.FileMode(420), modTime: time.Unix(1464030604, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/configfile.go b/configfile.go index 4fba976..27e20e9 100644 --- a/configfile.go +++ b/configfile.go @@ -13,13 +13,15 @@ import ( ) const ( - commandBackup = "backup" - commandCleanup = "cleanup" - commandList = "list-current-files" - commandRestore = "restore" - commandStatus = "status" - commandVerify = "verify" - commandRemove = "__remove_old" + commandBackup = "backup" + commandFullBackup = "full" + commandIncrBackup = "incr" + commandCleanup = "cleanup" + commandList = "list-current-files" + commandRestore = "restore" + commandStatus = "status" + commandVerify = "verify" + commandRemove = "__remove_old" ) var ( @@ -154,6 +156,16 @@ func (c *configFile) GenerateCommand(argv []string, time string) (commandLine [] root = c.RootPath dest = c.Destination commandLine, env, err = c.generateFullCommand(option, time, root, dest, addTime, "") + case commandFullBackup: + option = command + root = c.RootPath + dest = c.Destination + commandLine, env, err = c.generateFullCommand(option, time, root, dest, addTime, "") + case commandIncrBackup: + option = command + root = c.RootPath + dest = c.Destination + commandLine, env, err = c.generateFullCommand(option, time, root, dest, addTime, "") case commandCleanup: option = command commandLine, env, err = c.generateLiteCommand(option, time, addTime) diff --git a/help.txt b/help.txt index 522e262..5a00c8a 100644 --- a/help.txt +++ b/help.txt @@ -4,7 +4,8 @@ Usage: duplicity-backup [command] Available Commands: - backup Create backup according to the backup rules + backup / incr Create backup according to the backup rules + full Forces the creation of a full backup cleanup Delete the extraneous duplicity files list-current-files Lists the files contained in the backup restore [file path] [target] Restores single file / dir to target directory