Batch file movement utility for capacity-constrained block devices.
pipette copies files to a destination device from largest to smallest and stops before the drive fills up. Already-transferred files are tracked between runs so you can fill the same drive incrementally across multiple sessions.
pipette fill [source] --dest [device]
pipette clear --device=[device]Given a 128MB drive and 10GB of source files, pipette selects the largest files that fit within capacity, copies them completely, and records what was transferred so subsequent runs skip already-copied files and fill remaining space with the next batch.
pipette records completed transfers for each block device in ~/.local/share/pipette/<uuid>. Transfer history is stable across remounts and device
reassignment and is based on the UUID assigned to the device.
# clone the repository
git clone https://github.com/compscitwilight/pipette
cd pipette
# build the project
make build
# add to path and execute
export PATH="$PATH:./build"
pipette help