diff --git a/CHANGELOG.md b/CHANGELOG.md index d961db0..2c9711d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased](https://git.rustybever.be/Chewing_Bever/alex/src/branch/dev) +## [0.3.0](https://git.rustybever.be/Chewing_Bever/alex/src/tag/0.3.0) + ### Added * Incremental backups diff --git a/Cargo.lock b/Cargo.lock index 5ba48c9..bbe03a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "alex" -version = "0.2.2" +version = "0.3.0" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index 2ac6b39..4e3e88b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "alex" -version = "0.2.2" +version = "0.3.0" description = "Wrapper around Minecraft server processes, designed to complement Docker image installations." authors = ["Jef Roosens"] edition = "2021" diff --git a/src/backup/manager/mod.rs b/src/backup/manager/mod.rs index 7969021..72743b7 100644 --- a/src/backup/manager/mod.rs +++ b/src/backup/manager/mod.rs @@ -53,7 +53,8 @@ where } } - /// Create a new backup with the expected type. + /// Create a new backup, either full or incremental, depending on the state of the current + /// chain. pub fn create_backup(&mut self) -> io::Result<()> { // We start a new chain if the current chain is complete, or if there isn't a first chain // yet diff --git a/src/backup/mod.rs b/src/backup/mod.rs index ea7f2f9..a4081f9 100644 --- a/src/backup/mod.rs +++ b/src/backup/mod.rs @@ -56,6 +56,7 @@ impl Backup<()> { } impl Backup { + /// Set the backup's metadata. pub fn set_metadata(&mut self, metadata: T) { self.metadata = Some(metadata); } @@ -126,7 +127,19 @@ impl Backup { }) } - /// Create a new incremental backup from a given previous backup + /// Create a new Incremental backup from the given state, populated with the given directories. + /// + /// # Arguments + /// + /// * `previous_state` - State the file system was in during the previous backup in the chain + /// * `previous_start_time` - Start time of the previous backup; used to filter files + /// * `backup_dir` - Directory to store archive in + /// * `dirs` - list of tuples `(path_in_tar, src_dir)` with `path_in_tar` the directory name + /// under which `src_dir`'s contents should be stored in the archive + /// + /// # Returns + /// + /// The `Backup` instance describing this new backup. pub fn create_from>( previous_state: HashMap>, previous_start_time: chrono::DateTime, @@ -184,6 +197,13 @@ impl Backup { }) } + /// Restore the backup by extracting its contents to the respective directories. + /// + /// # Arguments + /// + /// * `backup_dir` - Backup directory where the file is stored + /// * `dirs` - list of tuples `(path_in_tar, dst_dir)` with `dst_dir` the directory on-disk + /// where the files stored under `path_in_tar` inside the tarball should be extracted to. pub fn restore>( &self, backup_dir: P,