Skip to content

Instantly share code, notes, and snippets.

@charlesroper
Created July 22, 2010 14:26
Show Gist options
  • Save charlesroper/486033 to your computer and use it in GitHub Desktop.
Save charlesroper/486033 to your computer and use it in GitHub Desktop.
# tmsanitize4e.rb
# Usage: tmsanitize4e <directory>
#
# Run this script on a TextMate bundle directory and it will
# encode all files to Windows-safe filenames.
require 'uri'
require 'find'
require 'fileutils'
include FileUtils::Verbose
BADCHARS = /([<>\|:\*…\"\?\\“”↵—↓↵‘’])/
target_dir = ARGV[0]
def sanitize(f)
URI.escape(f, BADCHARS).chomp
end
def verbose_rename (orig_name, new_name)
File.rename(orig_name, new_name)
puts orig_name + " --> " + new_name
end
Find.find(target_dir) do |f|
orig_name = File.basename(f)
clean_name = sanitize(File.basename(f))
dirname = File.dirname(f) + "/"
verbose_rename(dirname + orig_name, dirname + clean_name) unless (orig_name === clean_name)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment