0b78833d8e 
					 
					
						
						
							
							src/catar/binary_search_tree.rs: add regression tests and fix one bug  
						
						
						
						
					 
					
						2018-12-29 18:32:03 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b17d7149d2 
					 
					
						
						
							
							src/catar/binary_search_tree.rs: improve docu  
						
						
						
						
					 
					
						2018-12-29 17:38:50 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						985567fb45 
					 
					
						
						
							
							src/catar/encoder.rs: cleanup, factor out write_goodbye_table  
						
						
						
						
					 
					
						2018-12-29 17:26:32 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						95bd5dfec7 
					 
					
						
						
							
							src/catar/encoder.rs: correctly sort goodby items  
						
						
						
						
					 
					
						2018-12-29 17:00:48 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						46b6fbd6ae 
					 
					
						
						
							
							use external crate siphasher  
						
						... 
						
						
						
						Because std:#️⃣ :SipHasher is deprecated. 
						
						
					 
					
						2018-12-28 19:50:07 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						f0f3029e26 
					 
					
						
						
							
							src/catar/encoder.rs: fix bug in file copy  
						
						
						
						
					 
					
						2018-12-28 15:02:42 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d05f93215e 
					 
					
						
						
							
							src/catar/encoder.rs: fix symlinks  
						
						
						
						
					 
					
						2018-12-28 15:02:42 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7ebb173352 
					 
					
						
						
							
							getopt: cleanup: add trailing commas  
						
						... 
						
						
						
						It is customary in rust to always use trailing commas. (also
suggested by rustfmt)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-28 14:27:38 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						2767c5d39b 
					 
					
						
						
							
							getopt: cleanup: don't condense 'if' statements too much  
						
						... 
						
						
						
						In a language which enforces curly braces this looks weird
and rustfmt doesn't like it.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-28 14:27:38 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7d95c10da0 
					 
					
						
						
							
							getopt: whitespace cleanup  
						
						... 
						
						
						
						to make rustfmt happy
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-28 14:27:38 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a0cc09b5f0 
					 
					
						
						
							
							src/catar/encoder.rs: fix binary format, write goodby table  
						
						... 
						
						
						
						We still ned to sort the table (BST) ... 
						
						
					 
					
						2018-12-28 14:27:00 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						03fb895197 
					 
					
						
						
							
							getopt: condense nested match to reduce indentation  
						
						... 
						
						
						
						The `match value` statement is the only thing covering the
entire RawArgument::Option case. `rustfmt` suggests this
more condensed way of writing this case.
See the `git diff -w` of this patch:
|diff --git a/src/getopts.rs b/src/getopts.rs
|index 9755af2..4db4579 100644
|--- a/src/getopts.rs
|+++ b/src/getopts.rs
|@@ -72,8 +72,7 @@ pub fn parse_arguments<T: AsRef<str>>(
|             RawArgument::Separator => {
|                 break;
|             }
|-            RawArgument::Option { name, value } => {
|-                match value {
|+            RawArgument::Option { name, value } => match value {
|                 None => {
|                     let mut want_bool = false;
|                     let mut can_default = false;
|@@ -125,7 +124,6 @@ pub fn parse_arguments<T: AsRef<str>>(
|                     data.push((name, v));
|                 }
|             }
|-            }
|             RawArgument::Argument { value } => {
|                 rest.push(value);
|             }
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-28 14:16:58 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						4d0ea9978b 
					 
					
						
						
							
							getopt: let parse_arguments() take a slice of AsRef<str>  
						
						... 
						
						
						
						We don't need the content to be owned strings, and we don't
need the list to be a Vec, since we only care about being
able to iterate through and copy out portions of the strings
we need, so take an &[T] where T: AsRef<str>.
This avoids .iter().map(to_string).collect() before calling
parse_arguments().
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-28 14:05:05 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						2482c095b1 
					 
					
						
						
							
							getopt: remove skip logic  
						
						... 
						
						
						
						The 'skip' variable was set to indicate that the "rest of
the args" is to be copied into the 'rest' vec. We can do
this directly and avoid the 'if' case in the loop
altogether.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-28 13:59:44 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						99da3a073d 
					 
					
						
						
							
							getopt: indentation reduction  
						
						... 
						
						
						
						See the `git diff -w` output:
|diff --git a/src/getopts.rs b/src/getopts.rs
|index 6548a01..517cc37 100644
|--- a/src/getopts.rs
|+++ b/src/getopts.rs
|@@ -72,7 +72,10 @@ pub fn parse_arguments(
|     while pos < args.len() {
|         if skip {
|             rest.push(args[pos].clone());
|-        } else {
|+            pos += 1;
|+            continue;
|+        }
|+
|         match parse_argument(&args[pos]) {
|             RawArgument::Separator => {
|                 skip = true;
|@@ -135,7 +138,6 @@ pub fn parse_arguments(
|                 rest.push(value);
|             }
|         }
|-        }
|
|         pos += 1;
|     }
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-28 13:54:20 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ad8a98f7e4 
					 
					
						
						
							
							parse_arguments: work with utf8 bytes and reduce indentation  
						
						... 
						
						
						
						We are only caring about '=' and '-' which are single-byte
codepoints, so there's no reason not to work on a byte
slice.
Also, some indentation reduction:
Transform
    if (a) {
        ...
        return A;
    }
    return B;
into
    if (!a)
        return B;
    return A;
and
    if (a)
        if (b)
            foo()
into
    if (a && b)
        return;
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-28 13:47:29 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						248c17af39 
					 
					
						
						
							
							src/catar/encoder.rs: write filenames  
						
						
						
						
					 
					
						2018-12-28 11:48:47 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						2e4ae0e239 
					 
					
						
						
							
							src/catar/encoder.rs: write file data  
						
						
						
						
					 
					
						2018-12-28 10:44:12 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						3192ae968c 
					 
					
						
						
							
							src/catar/encoder.rs: write entry and symlink data  
						
						
						
						
					 
					
						2018-12-28 09:55:26 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						50ea43962e 
					 
					
						
						
							
							make map_struct functions public  
						
						
						
						
					 
					
						2018-12-28 08:04:46 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d2b03f2397 
					 
					
						
						
							
							catar/encoder.rs: improve error handling  
						
						
						
						
					 
					
						2018-12-28 07:45:15 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0ff559990c 
					 
					
						
						
							
							cleanups, avoid compiler warnings  
						
						
						
						
					 
					
						2018-12-28 07:14:12 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						45281d4927 
					 
					
						
						
							
							catar/encoder: detect symlink and regular files  
						
						
						
						
					 
					
						2018-12-27 14:24:31 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						fb8365b79f 
					 
					
						
						
							
							catar/encoder.rs: first try  
						
						
						
						
					 
					
						2018-12-27 13:15:47 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						fba3437f1e 
					 
					
						
						
							
							timer: setup_timeout_handler cannot fail  
						
						... 
						
						
						
						and if it does it panics anyway
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com > 
						
						
					 
					
						2018-12-27 10:36:28 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						bcd879cfb3 
					 
					
						
						
							
							backup-client: allow to specify directories (prepare for catar backup)  
						
						
						
						
					 
					
						2018-12-27 10:11:11 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b62b6cadf4 
					 
					
						
						
							
							start implementing catar  
						
						
						
						
					 
					
						2018-12-27 09:22:23 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						dc3de618ed 
					 
					
						
						
							
							new helper map_struct and map_struct_mut  
						
						
						
						
					 
					
						2018-12-27 09:20:17 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a198d74fc0 
					 
					
						
						
							
							cleanup: reduce compiler warnings  
						
						
						
						
					 
					
						2018-12-25 13:29:27 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						991de6007b 
					 
					
						
						
							
							remove outdated comment  
						
						
						
						
					 
					
						2018-12-25 13:24:50 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7ee2aa1b94 
					 
					
						
						
							
							touch_chunk: use libc::lutimensat  
						
						
						
						
					 
					
						2018-12-25 12:27:25 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						2c32fdde86 
					 
					
						
						
							
							move lookup_datastore() to backup/datastore.rs  
						
						
						
						
					 
					
						2018-12-22 17:37:25 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						64e53b2835 
					 
					
						
						
							
							gather usage statistics during garbage collection  
						
						
						
						
					 
					
						2018-12-22 16:58:16 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						28b96b56e1 
					 
					
						
						
							
							open_file_locked: improve error message  
						
						
						
						
					 
					
						2018-12-22 15:59:55 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						176e4af964 
					 
					
						
						
							
							sweep_used_chunks: print percentage  
						
						
						
						
					 
					
						2018-12-22 15:39:05 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7b2b40a893 
					 
					
						
						
							
							use openssl for faster hashing  
						
						
						
						
					 
					
						2018-12-22 14:31:59 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						e95950e40a 
					 
					
						
						
							
							chunk_store: reduce number of directories  
						
						... 
						
						
						
						Else, scans everything takes too long ... 
						
						
					 
					
						2018-12-22 14:04:05 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						15e9b4ed60 
					 
					
						
						
							
							src/api3/datastore.rs: new file  
						
						
						
						
					 
					
						2018-12-21 13:38:41 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						3c140f60cd 
					 
					
						
						
							
							use return value (avoid compiler warning)  
						
						
						
						
					 
					
						2018-12-21 12:44:20 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						03e4753d8e 
					 
					
						
						
							
							fix mutability for chunk store  
						
						
						
						
					 
					
						2018-12-21 12:15:26 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						2d9d143a8f 
					 
					
						
						
							
							backup-client: add optional chunk-size parameter  
						
						
						
						
					 
					
						2018-12-21 11:18:08 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						f0819fe5a5 
					 
					
						
						
							
							backup-client: do not start garbage collection after backup  
						
						
						
						
					 
					
						2018-12-21 09:24:55 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d62e6e2264 
					 
					
						
						
							
							backup-client: use 1M chunks, make chunk_size configurable  
						
						
						
						
					 
					
						2018-12-21 08:36:57 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						c34eb16651 
					 
					
						
						
							
							backup-clinet: specify target file name  
						
						
						
						
					 
					
						2018-12-20 14:09:31 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						c2d9b3914a 
					 
					
						
						
							
							add test code to access static global state  
						
						
						
						
					 
					
						2018-12-20 14:03:42 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						fe0e04c69c 
					 
					
						
						
							
							use proxmox-backup as package name  
						
						
						
						
					 
					
						2018-12-20 10:45:14 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						f7dd683b46 
					 
					
						
						
							
							fix tests  
						
						
						
						
					 
					
						2018-12-19 13:54:22 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						277fc5a3ce 
					 
					
						
						
							
							try to improve error messages  
						
						
						
						
					 
					
						2018-12-19 13:40:26 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						eae8aa3aa9 
					 
					
						
						
							
							cleanups: avoid compiler warnings  
						
						
						
						
					 
					
						2018-12-19 12:49:23 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						6c20a13d3c 
					 
					
						
						
							
							cleanup - avoid too much indentation  
						
						
						
						
					 
					
						2018-12-19 12:40:26 +01:00