Shared utilities across personal research repositories. Currently small:
only gdrive-sync for rclone-based incremental Google Drive backups.
git clone git@github.com:Gyumin5/research-tools.git ~/research-tools
echo 'export PATH="$HOME/research-tools/bin:$PATH"' >> ~/.bashrc
echo 'export UFPF_SHARED_ROOT="$HOME/research-shared"' >> ~/.bashrc # optional
source ~/.bashrcIncremental rclone wrapper. Each repo has its own .backup.conf (gitignored);
the script reads it and syncs every entry in SYNC_MAP to Google Drive.
Usage
cd <your-repo>
gdrive-sync # uses ./.backup.conf
gdrive-sync --dry-run # preview without uploading
gdrive-sync /path/to/conf # explicit config pathConfig format (see examples/ufpf.backup.conf)
REMOTE=gdrive:your-project-data
SYNC_MAP=(
"local/relative/path|remote/subpath"
"/absolute/path|remote/other"
)
TRANSFERS=8 # optional, default 4
EXCLUDE=( "*.tmp" "*.log" ) # optional, applied to every sync
EXTRA_ARGS="" # extra flags passed to rclonePaths on the left resolve relative to the config file's directory (or absolute).
rclone sync is incremental, so re-running only uploads changed files.
rcloneconfigured with a Google Drive remote (rclone config)bash4+
- Large experiment artifacts (CSV results, map data, dataset caches) go to Drive, not Git LFS.
- Drive layout: one remote root per project (
gdrive:<project>-data) plus a shared one (gdrive:shared-research) for cross-project assets like maps. - Per-machine absolute paths stay in
.backup.conf(gitignored). Commit.backup.conf.exampleas a template for teammates.