Simple CLI tool to watch directories and move their files to a single dumping ground
Go to file
renovate[bot] 40fea94faf
chore(deps): lock file maintenance
2024-05-19 00:31:04 +00:00
.cargo feat(nix): refactor out common args 2023-03-11 00:52:21 +00:00
.github Reapply "feat(release): upgrade cargo-dist to 0.13.1" 2024-04-21 18:02:29 +05:30
.vscode chore(vscode): configure nix-env 2023-02-03 16:04:22 +00:00
src fix(config): skip empty patterns in `file_filter` 2023-12-24 00:47:26 +05:30
.git-blame-ignore-revs chore(git): add Alejandra reformat to blame ignore revs 2023-02-22 18:29:18 +00:00
.gitignore feat(config): allow specifying a custom file filter 2023-08-14 18:56:31 +05:30
Cargo.lock chore(deps): lock file maintenance 2024-05-19 00:31:04 +00:00
Cargo.toml fix(deps): update serde monorepo to 1.0.200 2024-05-01 19:17:05 +00:00
LICENSE-APACHE chore: add README and license files 2022-08-10 15:26:07 +05:30
LICENSE-MIT chore: add README and license files 2022-08-10 15:26:07 +05:30 chore: fix Garnix badge 2023-10-29 23:10:11 +05:30
audit.toml chore: migrate to cargo-audit 2023-02-03 15:56:24 +00:00
default.nix fix(flakes): adjust flake-compat URL 2023-06-25 12:27:53 +05:30
flake.lock flake.lock: Update 2024-05-19 00:03:12 +00:00
flake.nix nix: use my nixpkgs fork 2024-05-11 11:56:45 +05:30
release.toml chore(release): update cargo-release config 2022-12-09 18:02:27 +00:00
rust-toolchain.toml fix: upgrade to Rust 1.77.2 2024-04-10 22:05:41 +05:30
shell.nix fix(flakes): adjust flake-compat URL 2023-06-25 12:27:53 +05:30

rucksack No Maintenance Intended Built with Garnix

rucksack is a simple file moving service that was built to solve the use case of watching a collection of directories and collecting all there files into a single target directory.

The idea for this was born from the frustration of playing games and wanting to share screenshots from them with my friends. Every game likes to hide its screenshots in a specific obscure path which made it harder to find them when I needed to. With rucksack they can all neatly stay in a single folder making discoverability significantly easier.



An example config file can look something like this:

# ~/.config/rucksack.toml
name = "Screenshots" # Optional
sources = [
  "/c/Users/Harsh Shandilya/Pictures/God Of War"
target = "/mnt/mediahell/screenshots"
file_filter = "*.png"


Prebuilt binaries for macOS and Linux can be installed from here.

rucksack uses watchman to power its file-watching capabilities. You can find the steps to install it for your own platform here.

To build from source, clone this repository and run cargo run --release. You will require a Rust installation.

rucksack is only tested against the latest stable release of Rust but a few versions older should also be fine.


Dual licensed under Apache 2.0 or MIT at your option.