this post was submitted on 03 Feb 2026
4 points (100.0% liked)

Show & Tell

304 readers
5 users here now

Show & Tell

A community for developers to share personal projects of any size or polish. Anything software/firmware/hardware.. ALL THE WARES!! Side projects, experiments, learning builds, half-finished ideas — all welcome.

Explain what you built, why you built it, and what you learned. Give feedback if you can. Ask for feedback if you want.

Rules

  1. Personal projects only (no company or paid product marketing)
  2. Include context: what it is, what tech you used, what you learned
  3. Be constructive and respectful
  4. No spam or referral farming
  5. Feedback is encouraged, not mandatory
  6. Mark NSFW content clearly
  7. If you see a project you like and you think is cool consider giving it a star!
AI Rules

Guys it's 2026, if you're not using AI at this point you're falling behind. That being said this community is not for showing off AI prompts that you put into gh Copilot or Claude or whatever, all that's showing the world is "hey I know how to make something up and explain it in 20 words while having the expectations of a team who gives a shit! Woow look at me!!".

So do your best to disclose where/how/why you used AI in your code, and if you suspect a project is entirely AI generated slop,, don't engage, don't bully, just let them eat their foot ¯\_(ツ)_/¯.

Icon and Banner were generated using ChatGPT, they're placeholders as of 1/20/26, will replace them with real art soon! https://chatgpt.com/share/696fa8bc-f3e0-8012-b6d7-350a8b53a0e1

founded 2 weeks ago
MODERATORS
 

Last year I created an rsync tool for myself. In short, It's purpose was to build rsync commands within a config file and use those files to build and run rsync commands. I preferred this over the every growing list of rsync commands I was experiencing. Making aliases for everything and keeping commands unified and neat was becoming overwhelming for myself.

Recently I've been sick so I used my free time to completely rewrite the script using all the knowledge I've learned over the last year writing some other scripts. I took out some features that were too specific, made the code much cleaner and easier to maintain and made the visual output easier to read and understand.

The script has a number of additional features including:

  • Running multiple config files from a single command
  • The base command will do a dry run to allow you to preview changes before committing to a transfer
  • An option to quickly do a dry run to simply view any changes
  • An option to quickly reverse the source/destination transfer direction
  • An option to ignore the dry run and instantly perform a sync
  • The ability to create a template config file that's (hopefully) easy to read and fill out
  • Feedback for a number of common issues so that the rsync command will not run, hopefully avoiding any data loss issues
  • An option to print out the full rsync command built from a config file (sometimes I want to move a specific file without creating a new, one time use config file)
  • Built with ssh and ssh key files in mind
  • Single file and POSIX portable with rsync as it's only dependency
  • Long command option names for easier scripting

One notable change I made from my first script and the rewrite was using the sed command to gather information from the config files instead of directly sourcing into the main script. It's slightly less efficient but more secure than accidentally running commands while using the source (.) command. I'm still trying to figure out how to make it slightly more efficient but for now it works how I like it to work.

I've had such terrible luck with fully featured syncing programs (Syncthing for example) and have always had much better consistency with rsync (at the loss of bi-directional, continuous syncing). I also hated building rsync commands so this tool has been a great compromise for myself.

no comments (yet)
sorted by: hot top controversial new old
there doesn't seem to be anything here