dropbox_filename_sanitizer

Tool to clean up filenames shared on Dropbox

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-24 13:02

Tags

Installation

nimble install dropbox_filename_sanitizer
choosenim install dropbox_filename_sanitizer
git clone https://github.com/Araq/dropbox_filename_sanitizer/

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
dropbox_filename_sanitizer - - - - - - -

README

Dropbox filename sanitizer

This little command line program displays and/or mangles the specified files to conform to characters allowed to synchronize correctly on Dropbox <https://www.dropbox.com/help/145>. I wrote this after having files shared with people and much later learning they weren't even getting them! The program is implemented in the Nimrod programming language <http://nimrod-lang.org>.

License

MIT license <LICENSE.rst>_.

Installing from source code

Stable version

Install the Nimrod compiler <http://nimrod-lang.org>. Then use Nimrod's Nimble package manager <https://github.com/nim-lang/nimble> to install the binary::

$ nimble update
$ nimble install argument_parser
$ nimble install dropbox_filename_sanitizer

This will install the dropbox_filename_sanitizer command into Nimble's binary directory.

Development version

Install the Nimrod compiler <http://nimrod-lang.org>. Then use Nimrod's Nimble package manager <https://github.com/nim-lang/nimble> to install locally the github checkout::

$ nimble update
$ nimble install argument_parser
$ git clone https://github.com/gradha/dropbox_filename_sanitizer.git
$ cd dropbox_filename_sanitizer
$ nimble install

Installing prebuilt binaries

If you trust binaries and random strangers on the internet, you can go to https://github.com/gradha/dropbox_filename_sanitizer/releases <https://github.com/gradha/dropbox_filename_sanitizer/releases>_ and download any of the .zip files attached to a specific release. Put the binary file somewhere in your $PATH and invoke at will

Usage

Once you have installed the program you can run the command and pass the directory where your Dropbox shared folder exist::

$ dropbox_filename_sanitizer /home/user/Dropbox

This will display all the files that have conflicting characters and the name they would be mangled into. Pass the -m or --mutate switch to actually perform renaming of these files. All behaviour is recursive.

If you want to invoke this program periodically you can put the command into your crontab <https://en.wikipedia.org/wiki/Cron>_. But if you don't want to use cron or want to execute it from other login scripts, you can use the -p or --period switch to specify how many seconds need to have elapsed since the last run of the program using this switch to actually scan the directories. What this means is that if you put the following line in your login scripts::

dropbox_filename_sanitizer -p 3600 -m /home/user/Dropbox

The command will create a ~/.dropbox_filename_sanitizer_last_run to remember when was the last time it was run, and if 3600 seconds have not elapsed, the command will quit without checking the folder. In general the command is fast enough that you don't have to care, but maybe you want to put this into a semi-automatic script which may run at a high frequency and don't want to spam your hard drive with I/O requests.

Some paths are always ignored during directory traversal. The list of case insensitive paths to ignore is:

.. include:: docs/ignored_paths.rst

If you are reading this on GitHub the list will be empty, see file docs/ignored_paths.rst <docs/ignored_paths.rst>_.

Documentation

There is not much more documentation documentation, you can see all the files on the github project linked from the docindex file <docindex.rst> and dropbox_filename_sanitizer_last_run --help will display the command line usage. You can also read the files installed with the Nimble package and use the doc nakefile task <https://github.com/fowlmouth/nake> to build their HTML version. Unix example::

$ cd `nimble path dropbox_filename_sanitizer`
$ nake doc
$ open docindex.html

Changes

This is development version 0.4.1. For a list of changes see the docs/CHANGES.rst file <docs/CHANGES.rst>_.

Git branches

This project uses the git-flow branching model <https://github.com/nvie/gitflow>_ with reversed defaults. Stable releases are tracked in the stable branch. Development happens in the default master branch.

Feedback

You can send me feedback through github's issue tracker <https://github.com/gradha/dropbox_filename_sanitizer/issues>. I also take a look from time to time to Nimrod's forums <http://forum.nimrod-lang.org> where you can talk to other nimrod programmers.