blaupause is a minimalistic tool to copy a single directory.
Command-line tools like rsync (Linux & macOS) and ROBOCOPY (Windows) provide powerful options for data transfer and duplication. However, achieving specific outcomes often requires frequent reference to documentation or diligent note-taking to recall the correct parameters.
Importantly, incorrect use of options like --delete
(rsync) or /PURGE
(ROBOCOPY) can result in unintended data loss.
blaupause offers a sensible default configuration to optimize transfer speeds and deliver feedback during copy operations — all within a minimalistic, user-friendly interface. Rather than implementing a custom algorithm for data transfer and duplication, blaupause leverages native command-line tools to copy directories and their contents. Progress and completion status are reported in the corresponding Terminal (macOS) or Command Prompt (Windows). On Linux, you need to either start blaupause from the Terminal or from a desktop shortcut with Terminal=true
set.
// rsync on Linux & macOS with default and [custom] options
// https://download.samba.org/pub/rsync/rsync.1
rsync -hrlvPW /source /target [-a --delete-during --checksum]
// ROBOCOPY on Windows with default and [custom] options
// https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
ROBOCOPY \\source \\target\source /E /ETA /MT:2 /R:0 /V [/COPYALL /PURGE]
ROBOCOPY does not offer an explicit checksum verification but instead checks transfers by comparing file sizes and timestamps: The 'Validate' option is therefore disabled on Windows.
Tip
Both rsync and ROBOCOPY support incremental updates. If a transfer is interrupted (e.g., due to connection loss or timeouts), you will find a corresponding message in the reports: simply rerun the operation to resume and complete it. Unchanged directories/files will be skipped, modified ones will be replaced, and missing items will be added.
Caution
If you enable the delete option (default: unchecked), any directories/files that exist on the target (receiving side) but are missing on the source (sending side) will be deleted — effectively synchronizing both directories. If the delete option remains unchecked, existing items on the target will be updated but never deleted.
blaupause is built with egui and eframe by Emil Ernerfeldt (@emilk). For licensing details, please refer to the respective copyright notices.