{"id":28188116,"url":"https://github.com/rickert-lab/blaupause","last_synced_at":"2025-07-21T10:34:08.970Z","repository":{"id":290198115,"uuid":"965305524","full_name":"rickert-lab/blaupause","owner":"rickert-lab","description":"🗂️  The copy assistant","archived":false,"fork":false,"pushed_at":"2025-05-03T15:11:31.000Z","size":2270,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T08:11:54.018Z","etag":null,"topics":["archive","backup","copy","robocopy","rsync","transfer"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rickert-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-12T21:34:00.000Z","updated_at":"2025-05-06T17:31:01.000Z","dependencies_parsed_at":"2025-05-03T16:44:12.486Z","dependency_job_id":null,"html_url":"https://github.com/rickert-lab/blaupause","commit_stats":null,"previous_names":["christianrickert/blaupause","rickert-lab/blaupause"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rickert-lab/blaupause","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickert-lab%2Fblaupause","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickert-lab%2Fblaupause/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickert-lab%2Fblaupause/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickert-lab%2Fblaupause/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rickert-lab","download_url":"https://codeload.github.com/rickert-lab/blaupause/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickert-lab%2Fblaupause/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266285572,"owners_count":23905382,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archive","backup","copy","robocopy","rsync","transfer"],"created_at":"2025-05-16T08:11:53.560Z","updated_at":"2025-07-21T10:34:08.965Z","avatar_url":"https://github.com/rickert-lab.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# blaupause 🗂️\n\n_blaupause_ is a minimalistic tool to copy a single directory.\n\n\u003cimg src=\"./assets/gui.png\" alt=\"GUI with macOS\" width=\"566\"\u003e  \n\nCommand-line tools like _rsync_ (Linux \u0026 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.\n\nImportantly, incorrect use of options like `--delete` (_rsync_) or `/PURGE` (_ROBOCOPY_) can result in unintended data loss.\n\n_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.\n\n```\n// rsync on Linux \u0026 macOS with default and [custom] options\n// https://download.samba.org/pub/rsync/rsync.1\nrsync -hrlvPW /source /target [-a --delete-during --checksum]\n\n// ROBOCOPY on Windows with default and [custom] options\n// https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy\nROBOCOPY \\\\source \\\\target\\source /E /ETA /MT:2 /R:0 /V [/COPYALL /PURGE]\n```\nROBOCOPY 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.\n\n\u003e[!TIP]\nBoth _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.\n\n\u003e[!CAUTION]\nIf 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**.\n\n_blaupause_ is built with [egui](https://github.com/emilk/egui) and [eframe](https://github.com/emilk/egui/tree/master/crates/eframe) by Emil Ernerfeldt ([@emilk](https://github.com/emilk)). For licensing details, please refer to the respective copyright notices.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickert-lab%2Fblaupause","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frickert-lab%2Fblaupause","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickert-lab%2Fblaupause/lists"}