rename2mac 0.9.4 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +13 -5
 - data/bin/rename2mac +62 -18
 - data/rename2mac-0.9.4.gem +0 -0
 - data/rename2mac.gemspec +1 -1
 - metadata +2 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b38ef30c1d7c15e3ba46586d9e447351956d4f8a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: fd5d7c3c8b53f7c4e67561b6de5f4aa545ab58d4
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: f8556b354e5595741d2cbc2ea29d4f7f210b7693ca1e718e8cbda4fb7b64cd6c79921e8cfe14c7db25509be5dd385057b491e8324b9c68a1aed67d99142e36a4
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a8f94c4d709718224068ead0dc367d36825444bd1ecc54de80ba7309242b5151adf3ed88dbe3b8547bc85fcecf279d6aa2c32a9cb5d8c8be584733b238cc1780
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -4,7 +4,11 @@ Rename folderful of filenames to Mac OS X supported format (UTF8-MAC). Mac OS X 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            Background:
         
     | 
| 
       6 
6 
     | 
    
         
             
            --------------------------
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
            When I use Mac OS X Finder, I have a lot of issue when dealing with Asian filenames, such as Japanese/Korean/Chinese characters. Previous attempt using convmv and iconv tools failed to fix the problem led me created this tool. I am sure this can fix other international characters too.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            The Mac OS X system handles filenames in modified Unicode format called UTF8-Mac. If a filename contain none UTF8-Mac character, the Finder may exihibit behavour such as disappearing file, constant refresh, unable to open file, etc. To fix this problem, the file has to be renamed using UTF8-Mac format.
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            For more information read https://www.j3e.de/linux/convmv/man/#hfs__on_os_x___darwin
         
     | 
| 
       8 
12 
     | 
    
         | 
| 
       9 
13 
     | 
    
         
             
            Installation:
         
     | 
| 
       10 
14 
     | 
    
         
             
            --------------------------
         
     | 
| 
         @@ -14,13 +18,17 @@ Installation: 
     | 
|
| 
       14 
18 
     | 
    
         | 
| 
       15 
19 
     | 
    
         
             
            Usage:
         
     | 
| 
       16 
20 
     | 
    
         
             
            --------------------------
         
     | 
| 
       17 
     | 
    
         
            -
            rename2mac \[ 
     | 
| 
      
 21 
     | 
    
         
            +
            rename2mac \[arguments\] \<directory\>
         
     | 
| 
       18 
22 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
      
 23 
     | 
    
         
            +
            Arguments:
         
     | 
| 
       20 
24 
     | 
    
         
             
            --------------------------
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 25 
     | 
    
         
            +
            --noop       -n  Make no changes
         
     | 
| 
      
 26 
     | 
    
         
            +
            --recursive  -r  Recursively rename
         
     | 
| 
      
 27 
     | 
    
         
            +
            --force      -f  Force overwrite existing file if it exists
         
     | 
| 
      
 28 
     | 
    
         
            +
            --quiet      -q  Do not output individual results to screen
         
     | 
| 
      
 29 
     | 
    
         
            +
            --help       -h  Display current help message
         
     | 
| 
       22 
30 
     | 
    
         | 
| 
       23 
31 
     | 
    
         
             
            License:
         
     | 
| 
       24 
32 
     | 
    
         
             
            --------------------------
         
     | 
| 
       25 
33 
     | 
    
         
             
            MIT
         
     | 
| 
       26 
     | 
    
         
            -
            Mac Ma  
     | 
| 
      
 34 
     | 
    
         
            +
            Mac Ma  comomac (at) runbox (dot) com  (C) 2013 Copyright
         
     | 
    
        data/bin/rename2mac
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            #
         
     | 
| 
       5 
5 
     | 
    
         
             
            # Rename folderful of filenames to Mac OS X supported format (UTF8-MAC). Mac OS X use only.
         
     | 
| 
       6 
     | 
    
         
            -
            # Mac Ma 
     | 
| 
      
 6 
     | 
    
         
            +
            # Mac Ma  comomac (at) runbox (dot) com   (c) Copyright 2013
         
     | 
| 
       7 
7 
     | 
    
         
             
            # License MIT
         
     | 
| 
       8 
8 
     | 
    
         
             
            #
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
         @@ -17,13 +17,18 @@ unless RbConfig::CONFIG['host_os'] =~ /darwin/ 
     | 
|
| 
       17 
17 
     | 
    
         
             
            	exit
         
     | 
| 
       18 
18 
     | 
    
         
             
            end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
            require ' 
     | 
| 
      
 20 
     | 
    
         
            +
            require 'getoptlong'
         
     | 
| 
       21 
21 
     | 
    
         
             
            require 'fileutils'
         
     | 
| 
       22 
22 
     | 
    
         
             
            require 'term/ansicolor'
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
            include Term::ANSIColor
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
            class String
         
     | 
| 
      
 27 
     | 
    
         
            +
            	# escape [] and {} character for Dir.glob to use
         
     | 
| 
      
 28 
     | 
    
         
            +
            	def glob_escape
         
     | 
| 
      
 29 
     | 
    
         
            +
            		self.gsub(/([\[\]\{\}\*\?\\])/, '\\\\\1')
         
     | 
| 
      
 30 
     | 
    
         
            +
            	end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
       27 
32 
     | 
    
         
             
            	def to_m
         
     | 
| 
       28 
33 
     | 
    
         
             
            		# convert string to UTF8-MAC format
         
     | 
| 
       29 
34 
     | 
    
         
             
            		self.encode('UTF8-MAC', 'UTF-8')
         
     | 
| 
         @@ -85,28 +90,67 @@ def Dir.restricted?( dir, excludes=[] ) 
     | 
|
| 
       85 
90 
     | 
    
         
             
                return false
         
     | 
| 
       86 
91 
     | 
    
         
             
            end
         
     | 
| 
       87 
92 
     | 
    
         | 
| 
      
 93 
     | 
    
         
            +
            def show_help
         
     | 
| 
      
 94 
     | 
    
         
            +
            	puts \
         
     | 
| 
      
 95 
     | 
    
         
            +
            %Q{Usage:
         
     | 
| 
      
 96 
     | 
    
         
            +
            rename2mac [arguments] <dir>
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            Arguments:
         
     | 
| 
      
 99 
     | 
    
         
            +
            --noop       -n  Make no changes
         
     | 
| 
      
 100 
     | 
    
         
            +
            --recursive  -r  Recursively rename
         
     | 
| 
      
 101 
     | 
    
         
            +
            --force      -f  Force overwrite existing file if it exists
         
     | 
| 
      
 102 
     | 
    
         
            +
            --quiet      -q  Do not output individual results to screen
         
     | 
| 
      
 103 
     | 
    
         
            +
            --help       -h  Display current help message}
         
     | 
| 
      
 104 
     | 
    
         
            +
            end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            opts = GetoptLong.new(
         
     | 
| 
      
 109 
     | 
    
         
            +
            	[ '--noop',      '-n', GetoptLong::NO_ARGUMENT ],
         
     | 
| 
      
 110 
     | 
    
         
            +
            	[ '--recursive', '-r', GetoptLong::NO_ARGUMENT ],
         
     | 
| 
      
 111 
     | 
    
         
            +
            	[ '--force',     '-f', GetoptLong::NO_ARGUMENT ],
         
     | 
| 
      
 112 
     | 
    
         
            +
            	[ '--quiet',     '-q', GetoptLong::NO_ARGUMENT ],
         
     | 
| 
      
 113 
     | 
    
         
            +
            	[ '--help',      '-h', GetoptLong::NO_ARGUMENT ]
         
     | 
| 
      
 114 
     | 
    
         
            +
            )
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
            noop = recursive = force = quiet = false
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
            opts.each do |opt, arg|
         
     | 
| 
      
 119 
     | 
    
         
            +
            	noop = true		 if opt == '--noop'
         
     | 
| 
      
 120 
     | 
    
         
            +
            	recursive = true if opt == '--recursive'
         
     | 
| 
      
 121 
     | 
    
         
            +
            	force = true 	 if opt == '--force'
         
     | 
| 
      
 122 
     | 
    
         
            +
            	quiet = true	 if opt == '--quiet'
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
            	if opt == '--help'
         
     | 
| 
      
 125 
     | 
    
         
            +
            		show_help
         
     | 
| 
      
 126 
     | 
    
         
            +
            		exit
         
     | 
| 
      
 127 
     | 
    
         
            +
            	end
         
     | 
| 
      
 128 
     | 
    
         
            +
            end
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
       88 
131 
     | 
    
         
             
            if ARGV.length == 0
         
     | 
| 
       89 
     | 
    
         
            -
            	 
     | 
| 
      
 132 
     | 
    
         
            +
            	show_help
         
     | 
| 
       90 
133 
     | 
    
         
             
            	exit
         
     | 
| 
       91 
134 
     | 
    
         
             
            else
         
     | 
| 
       92 
     | 
    
         
            -
            	 
     | 
| 
       93 
     | 
    
         
            -
            		# -n argument will show what files/folders will be changed, without making changes
         
     | 
| 
       94 
     | 
    
         
            -
            		noop = true
         
     | 
| 
       95 
     | 
    
         
            -
            		src_dir = File.expand_path(ARGV[1])
         
     | 
| 
       96 
     | 
    
         
            -
            	else
         
     | 
| 
       97 
     | 
    
         
            -
            		noop = false
         
     | 
| 
       98 
     | 
    
         
            -
            		src_dir = File.expand_path(ARGV[0])
         
     | 
| 
       99 
     | 
    
         
            -
            	end
         
     | 
| 
      
 135 
     | 
    
         
            +
            	src_dir = File.expand_path(ARGV[0])
         
     | 
| 
       100 
136 
     | 
    
         | 
| 
       101 
137 
     | 
    
         
             
            	unless FileTest.directory?( src_dir )
         
     | 
| 
       102 
     | 
    
         
            -
            		puts " 
     | 
| 
      
 138 
     | 
    
         
            +
            		puts "Dir don't exists. #{src_dir}"
         
     | 
| 
       103 
139 
     | 
    
         
             
            		exit
         
     | 
| 
       104 
140 
     | 
    
         
             
            	end
         
     | 
| 
       105 
141 
     | 
    
         
             
            end
         
     | 
| 
       106 
142 
     | 
    
         | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
       107 
144 
     | 
    
         
             
            total_success = 0 # success rename counter
         
     | 
| 
       108 
145 
     | 
    
         
             
            total_fail = 0 # fail rename counter
         
     | 
| 
       109 
146 
     | 
    
         | 
| 
      
 147 
     | 
    
         
            +
            # set wildcard if recursive or not
         
     | 
| 
      
 148 
     | 
    
         
            +
            if recursive
         
     | 
| 
      
 149 
     | 
    
         
            +
            	wildcard = '/**/*'
         
     | 
| 
      
 150 
     | 
    
         
            +
            else
         
     | 
| 
      
 151 
     | 
    
         
            +
            	wildcard = '/*'
         
     | 
| 
      
 152 
     | 
    
         
            +
            end
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
       110 
154 
     | 
    
         
             
            # repeat if discover some success, because new files might be discovered
         
     | 
| 
       111 
155 
     | 
    
         
             
            total_files = 0
         
     | 
| 
       112 
156 
     | 
    
         
             
            flag = true
         
     | 
| 
         @@ -114,9 +158,9 @@ while flag 
     | 
|
| 
       114 
158 
     | 
    
         
             
            	total_files = 0
         
     | 
| 
       115 
159 
     | 
    
         
             
            	flag = false
         
     | 
| 
       116 
160 
     | 
    
         | 
| 
       117 
     | 
    
         
            -
            	 
     | 
| 
       118 
     | 
    
         
            -
            		 
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
      
 161 
     | 
    
         
            +
            	Dir.glob(File.expand_path(src_dir).glob_escape + wildcard).delete_if { |fullpath|
         
     | 
| 
      
 162 
     | 
    
         
            +
            		Dir.restricted?( fullpath )
         
     | 
| 
      
 163 
     | 
    
         
            +
            	}.each { |fullpath|
         
     | 
| 
       120 
164 
     | 
    
         
             
            		next if fullpath.bn[0..0] == '.'
         
     | 
| 
       121 
165 
     | 
    
         | 
| 
       122 
166 
     | 
    
         
             
            		total_files += 1
         
     | 
| 
         @@ -136,10 +180,10 @@ while flag 
     | 
|
| 
       136 
180 
     | 
    
         
             
            				# rename directory or file
         
     | 
| 
       137 
181 
     | 
    
         
             
            				begin
         
     | 
| 
       138 
182 
     | 
    
         
             
            					# tell program to restart the rename from beginning after finish, because some files maybe revealed after rename
         
     | 
| 
       139 
     | 
    
         
            -
            					FileUtils.mv(fullpath, fullpath.dn.to_m + '/' + fullpath.bn.to_m, :noop => noop)
         
     | 
| 
       140 
     | 
    
         
            -
            					fullpath.print_diff
         
     | 
| 
      
 183 
     | 
    
         
            +
            					FileUtils.mv(fullpath, fullpath.dn.to_m + '/' + fullpath.bn.to_m, :noop => noop, :force => force)
         
     | 
| 
      
 184 
     | 
    
         
            +
            					fullpath.print_diff unless quiet
         
     | 
| 
       141 
185 
     | 
    
         
             
            					total_success += 1
         
     | 
| 
       142 
     | 
    
         
            -
            					flag = true
         
     | 
| 
      
 186 
     | 
    
         
            +
            					flag = true unless noop
         
     | 
| 
       143 
187 
     | 
    
         
             
            				rescue => e
         
     | 
| 
       144 
188 
     | 
    
         
             
            					print 'failed:  '
         
     | 
| 
       145 
189 
     | 
    
         
             
            					fullpath.print_diff
         
     | 
| 
         Binary file 
     | 
    
        data/rename2mac.gemspec
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rename2mac
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.9. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.9.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Mac Ma
         
     | 
| 
         @@ -34,6 +34,7 @@ extra_rdoc_files: [] 
     | 
|
| 
       34 
34 
     | 
    
         
             
            files:
         
     | 
| 
       35 
35 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       36 
36 
     | 
    
         
             
            - README.md
         
     | 
| 
      
 37 
     | 
    
         
            +
            - rename2mac-0.9.4.gem
         
     | 
| 
       37 
38 
     | 
    
         
             
            - rename2mac.gemspec
         
     | 
| 
       38 
39 
     | 
    
         
             
            - bin/rename2mac
         
     | 
| 
       39 
40 
     | 
    
         
             
            homepage: http://rubygems.org/gems/rename2mac
         
     |