Renamer 0.4.0 → 0.4.2
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.
- data/README +6 -6
- data/bin/renamer +9 -5
- data/doc/BUGS +2 -3
- data/doc/ChangeLog +48 -1
- data/doc/FAQ +5 -5
- data/doc/TODO +2 -5
- data/doc/renamer +11 -14
- data/lib/const.rb +1 -1
- data/lib/renamer.rb +32 -18
- data/po/fr/renamer.po +40 -30
- data/po/renamer.pot +35 -23
- data/test/tc_renamer.rb +27 -0
- metadata +7 -10
- data/locale/fr/LC_MESSAGES/renamer.mo +0 -0
data/README
CHANGED
@@ -21,15 +21,14 @@ Renamer can:
|
|
21
21
|
|
22
22
|
===Requirements
|
23
23
|
|
24
|
-
Ruby >= 1.8.0
|
25
|
-
RubyGem >= 0.8.0
|
24
|
+
* Ruby >= 1.8.0 (http://www.ruby-lang.org)
|
25
|
+
* RubyGem >= 0.8.0 (http://rubygem.rubyforge.org)
|
26
26
|
|
27
27
|
===Install
|
28
28
|
|
29
|
-
<tt>
|
30
|
-
|
31
|
-
|
32
|
-
</tt>
|
29
|
+
<tt>$ su</tt>
|
30
|
+
|
31
|
+
<tt># gem install Renamer</tt>
|
33
32
|
|
34
33
|
===Usage
|
35
34
|
|
@@ -38,6 +37,7 @@ $ su
|
|
38
37
|
===License
|
39
38
|
|
40
39
|
Renamer is distributed under the terms of the GNU General Public License.
|
40
|
+
|
41
41
|
See the COPYING file for more information.
|
42
42
|
|
43
43
|
===Copyright
|
data/bin/renamer
CHANGED
@@ -49,6 +49,7 @@ end
|
|
49
49
|
|
50
50
|
require 'optparse'
|
51
51
|
require 'gettext'
|
52
|
+
require 'tempfile'
|
52
53
|
|
53
54
|
require 'const'
|
54
55
|
require 'renamer'
|
@@ -64,11 +65,12 @@ bindtextdomain("renamer", p)
|
|
64
65
|
########################
|
65
66
|
# Command Line Options #
|
66
67
|
########################
|
67
|
-
action, arg = nil
|
68
|
-
recursive = false
|
68
|
+
action, arg, $VERBOSE = nil
|
69
|
+
recursive, overwrite = false
|
70
|
+
|
69
71
|
opts = OptionParser.new
|
70
72
|
|
71
|
-
opts.banner = _("Usage:
|
73
|
+
opts.banner = _("Usage: %s [options] FILENAMES") % File.basename($0)
|
72
74
|
opts.separator ""
|
73
75
|
opts.separator _("Specific options:")
|
74
76
|
|
@@ -81,6 +83,8 @@ opts.on("-U", "--underscore", _("Replace underscores by spaces in FILENAMES")) {
|
|
81
83
|
opts.on("-b", _("--basename BASENAME"), _("Rename FILENAMES using the specified"), _("BASENAME followed by an incremental number")) { |bn| action = :basename; arg = bn }
|
82
84
|
opts.on("-e", _("--ext NEW"), _("Rename FILENAMES from their actual extension"), _("to the NEW one")) { |new| action = :ext; arg = new }
|
83
85
|
opts.on("-r", "--recursive", _("Run %s recursively across directories") % Const::NAME) { recursive = true }
|
86
|
+
opts.on("-o", "--overwrite", _("Overwrite existing files if needed") % Const::NAME) { overwrite = true }
|
87
|
+
opts.on("-V", "--verbose", _("Run %s in verbose mode (quiet by default)") % Const::NAME) { $VERBOSE = true }
|
84
88
|
|
85
89
|
opts.separator ""
|
86
90
|
opts.separator _("Common options:")
|
@@ -101,7 +105,7 @@ filenames = opts.parse(ARGV)
|
|
101
105
|
####################
|
102
106
|
# Processing files #
|
103
107
|
####################
|
104
|
-
r = Renamer.new(filenames, recursive)
|
108
|
+
r = Renamer.new(filenames, recursive, overwrite)
|
105
109
|
|
106
110
|
case action
|
107
111
|
when :downcase
|
@@ -120,4 +124,4 @@ when :basename
|
|
120
124
|
r.basename(arg)
|
121
125
|
when :ext
|
122
126
|
r.ext(arg)
|
123
|
-
end
|
127
|
+
end
|
data/doc/BUGS
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
= Renamer - The perfect tool to easily rename your files
|
2
2
|
|
3
3
|
== Known bugs:
|
4
|
-
Last Modified:
|
4
|
+
Last Modified: 2006-04-24
|
5
5
|
|
6
|
-
* Using of wildcards on the command-line only works for unix shells we must use Dir[]
|
7
|
-
if we want this feature to be available on other systems (MS-Windows for example).
|
6
|
+
* Using of wildcards on the command-line only works for unix shells we must use Dir[] if we want this feature to be available on other systems (MS-Windows for example).
|
data/doc/ChangeLog
CHANGED
@@ -1,6 +1,53 @@
|
|
1
1
|
= Renamer - The perfect tool to easily rename your files
|
2
2
|
|
3
3
|
|
4
|
+
=== Renamer 0.5.0
|
5
|
+
|
6
|
+
2006-04-24 Nicolas Cavigneaux <nico@bounga.org>
|
7
|
+
|
8
|
+
* Added overwrite mode
|
9
|
+
* Added Unit Tests
|
10
|
+
* Updated documentation
|
11
|
+
* Updated POT file
|
12
|
+
* Updated french translation
|
13
|
+
* Improved Rakefile
|
14
|
+
|
15
|
+
2006-04-24 Nicolas Cavigneaux <nico@bounga.org>
|
16
|
+
|
17
|
+
* Corrected bug in Renamer#ext() (don't process dotfiles even in subdirectories)
|
18
|
+
* Added Unit Test
|
19
|
+
|
20
|
+
2006-03-13 Nicolas Cavigneaux <nico@bounga.org>
|
21
|
+
|
22
|
+
* Updated doc
|
23
|
+
|
24
|
+
2006-02-05 Nicolas Cavigneaux <nico@bounga.org>
|
25
|
+
|
26
|
+
* Updated Rakefile
|
27
|
+
* Corrected i18n strings displaying bug
|
28
|
+
* Updated POT file
|
29
|
+
* Updated french translation
|
30
|
+
|
31
|
+
2006-01-26 Nicolas Cavigneaux <nico@bounga.org>
|
32
|
+
|
33
|
+
* Updated info about how to install Renamer
|
34
|
+
|
35
|
+
2006-01-16 Nicolas Cavigneaux <nico@bounga.org>
|
36
|
+
|
37
|
+
* Added verbose/quiet modes
|
38
|
+
* Updated TODO, doc/renamer files
|
39
|
+
* Updated error messages
|
40
|
+
* Updated french translation
|
41
|
+
* Corrected typo in french translation
|
42
|
+
|
43
|
+
2006-01-13 Nicolas Cavigneaux <nico@bounga.org>
|
44
|
+
|
45
|
+
* Improved "rename_fs" method (now use Tempfile class)
|
46
|
+
* Improved renaming, it now uses absolute pathnames
|
47
|
+
* Added a "require" to test/tc_renamer.rb to make it works with
|
48
|
+
Tempfile class
|
49
|
+
* Updated TODO file
|
50
|
+
|
4
51
|
=== Renamer 0.4.0
|
5
52
|
|
6
53
|
2006-01-07 Nicolas Cavigneaux <nico@bounga.org>
|
@@ -139,4 +186,4 @@
|
|
139
186
|
|
140
187
|
* Lowercase the filenames
|
141
188
|
* Uppercase the filenames
|
142
|
-
* Delete spaces in the filenames
|
189
|
+
* Delete spaces in the filenames
|
data/doc/FAQ
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Renamer - The perfect tool to easily rename your files
|
2
2
|
|
3
|
-
<em>Last Modified:
|
3
|
+
<em>Last Modified: 2006-01-26</em>
|
4
4
|
|
5
5
|
|
6
6
|
== 1. Installing
|
@@ -22,7 +22,7 @@ on the command-line if it is well installed.
|
|
22
22
|
To install Renamer from the official gem, you just must have the Gem packaging
|
23
23
|
system installed (http://rubygems.rubyforge.org) and type
|
24
24
|
|
25
|
-
<tt># gem install
|
25
|
+
<tt># gem install Renamer</tt>
|
26
26
|
|
27
27
|
and if you've already downloaded the gem, you have to type :
|
28
28
|
|
@@ -41,8 +41,8 @@ This will install all the required files in the good directories. That's all, yo
|
|
41
41
|
|
42
42
|
Because Renamer makes it easy to rename any number of files on any filesystem
|
43
43
|
without knowing anything about shell scripting or regular expressions (regexp).
|
44
|
-
Renamer is able to lowercase, uppercase, delete white-spaces and a lot more
|
45
|
-
|
44
|
+
Renamer is able to lowercase, uppercase, delete white-spaces and a lot more. It's
|
45
|
+
fast, light and always evolving.
|
46
46
|
|
47
47
|
=== 2.2. I've launched Renamer, but I'm lost, what can I do?
|
48
48
|
|
@@ -95,4 +95,4 @@ available in the package.
|
|
95
95
|
=== 3.6. Can I give money or other things to Renamer developers?
|
96
96
|
|
97
97
|
If you really want to do this you can. You should contact a developer to know
|
98
|
-
what to do.
|
98
|
+
what to do.
|
data/doc/TODO
CHANGED
@@ -8,16 +8,13 @@ the mailto:renamer-dev@gna.org mailing list.
|
|
8
8
|
|
9
9
|
=== Before next release
|
10
10
|
|
11
|
-
* Verbose/Quiet modes
|
12
|
-
* Overwrite mode
|
13
11
|
* Add a method to lowercase/uppercase extensions only
|
14
|
-
* Improve "run" method, we should work on absolute pathnames
|
15
|
-
* Improve "rename_fs" method (add a random number to the tmp file)
|
16
12
|
* Improve execution speed (Benchmark and profile)
|
17
13
|
|
18
14
|
|
19
15
|
=== Future releases
|
20
16
|
|
21
|
-
*
|
17
|
+
* Add a method to rename files using current date/time
|
18
|
+
* Add a method to delete the "n" first/last characters
|
22
19
|
|
23
20
|
(Doned items are moved to ChangeLog file)
|
data/doc/renamer
CHANGED
@@ -9,8 +9,6 @@
|
|
9
9
|
Permission is granted to copy, distribute and/or modify this document
|
10
10
|
under the terms of the {GNU General Public License}[http://www.gnu.org/copyleft/gpl.html], Version 2 or later.
|
11
11
|
|
12
|
-
Last release of this documentation can be downloaded at: http://renamer.bounga.org/index.php?page=doc
|
13
|
-
|
14
12
|
== Introduction
|
15
13
|
|
16
14
|
=== Description
|
@@ -29,7 +27,7 @@ Its main features are :
|
|
29
27
|
* rename filenames from their actual extension to the specified one
|
30
28
|
* recursive actions
|
31
29
|
* run on various operating systems (Gnu/Linux, *BSD, Microsoft Windows, ...)
|
32
|
-
* 100% GPL,
|
30
|
+
* 100% GPL, free software
|
33
31
|
|
34
32
|
Renamer official website is available at: http://renamer.bounga.org
|
35
33
|
|
@@ -40,7 +38,6 @@ To install Renamer, you must have:
|
|
40
38
|
* RubyGem packaging system (>= 0.8.0) (http://rubygems.rubyforge.org)
|
41
39
|
* "root" privileges on your system
|
42
40
|
|
43
|
-
|
44
41
|
== Installation
|
45
42
|
|
46
43
|
Renamer package can be downloaded at: http://download.gna.org/renamer/Renamer.gem. This link always points to
|
@@ -58,15 +55,13 @@ Or you can use gem to automatically download and install the lastest release of
|
|
58
55
|
|
59
56
|
<tt>$ su</tt>
|
60
57
|
|
61
|
-
<tt># gem install
|
62
|
-
|
63
|
-
Developers can be interested in downloading the CVS sources to be able to try or code on the latest
|
64
|
-
version of Renamer. But take care, these sources are development files and are reserved to advanced
|
65
|
-
users. Using these sources Renamer could be very instable or even unusable. To get the CVS sources,
|
66
|
-
use the following command:
|
67
|
-
|
68
|
-
<tt>cvs -d:pserver:anonymous@cvs.gna.org:/cvs/renamer co renamer</tt>
|
58
|
+
<tt># gem install Renamer</tt>
|
69
59
|
|
60
|
+
Developers can be interested in downloading the latest sources to be able to try or code on Renamer.
|
61
|
+
But take care, these sources are development files and are reserved to advanced users. Using these
|
62
|
+
sources Renamer could be very instable or even unusable. To get the latest sources, you should contact a
|
63
|
+
developer, see: http://gna.org/project/memberlist.php?group=renamer. Renamer is maintain using {Mercurial SCM}[http://www.selenic.com/mercurial/]
|
64
|
+
so you should read about it if you want to develop on this project.
|
70
65
|
|
71
66
|
== Usage
|
72
67
|
|
@@ -88,11 +83,13 @@ Available options for Renamer are:
|
|
88
83
|
* -U, --underscore : Replace underscores by spaces in filenames
|
89
84
|
* -b, --basename : Rename filenames using the specified basename followed by an incremental number
|
90
85
|
* -e, --ext : Rename filenames from their actual extension to the specified one
|
86
|
+
* -r, --recursive : Run Renamer recursively across directories
|
87
|
+
* -o, --overwrite : Overwrite existing files if needed
|
88
|
+
* -V, --verbose : Run Renamer in verbose mode (quiet by default)
|
91
89
|
* -h, --help : Show some help
|
92
90
|
* -v, --version : Show Renamer version
|
93
91
|
* -l, --license : Show some information about Renamer license
|
94
92
|
|
95
|
-
|
96
93
|
== Authors / Support
|
97
94
|
|
98
95
|
=== Authors
|
@@ -120,4 +117,4 @@ This manual documents Renamer software, it's part of Renamer.
|
|
120
117
|
|
121
118
|
Copyright (c) 2004-2006 Nicolas Cavigneaux <nico@bounga.org>
|
122
119
|
|
123
|
-
This document can be use under the terms of the {GNU General Public License}[http://www.gnu.org/copyleft/gpl.html], Version 2 or later.
|
120
|
+
This document can be use under the terms of the {GNU General Public License}[http://www.gnu.org/copyleft/gpl.html], Version 2 or later.
|
data/lib/const.rb
CHANGED
data/lib/renamer.rb
CHANGED
@@ -17,14 +17,23 @@
|
|
17
17
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
18
18
|
=end
|
19
19
|
|
20
|
-
|
20
|
+
########################
|
21
|
+
# Initiliazing GetText #
|
22
|
+
########################
|
21
23
|
include GetText
|
24
|
+
# Searching the path to locale directory
|
25
|
+
p = File.join(File.dirname(__FILE__), "/../locale/")
|
26
|
+
bindtextdomain("renamer", p)
|
22
27
|
|
28
|
+
# Class Renamer handles files renaming
|
23
29
|
class Renamer
|
24
|
-
EXISTS = _("%s:
|
30
|
+
EXISTS = _("%s: %s file already exists!")
|
25
31
|
|
26
32
|
# Create a new Renamer object
|
27
|
-
def initialize(filenames, recursive = false)
|
33
|
+
def initialize(filenames, recursive = false, overwrite = false)
|
34
|
+
# Whether user wants to overwrite existing files or not
|
35
|
+
@overwrite = overwrite
|
36
|
+
|
28
37
|
# User wants to process files recursively
|
29
38
|
if recursive
|
30
39
|
@filenames = Array.new
|
@@ -132,7 +141,7 @@ class Renamer
|
|
132
141
|
def ext(e)
|
133
142
|
proc_ext = Proc.new do |file, extension|
|
134
143
|
# We don't want to process dotfiles
|
135
|
-
unless file =~ /^\./
|
144
|
+
unless File.basename(file) =~ /^\./
|
136
145
|
# We want to remove the last extension
|
137
146
|
name = file.split(".")
|
138
147
|
name = name[0...-1].join(".") if name.size > 1
|
@@ -151,37 +160,42 @@ private
|
|
151
160
|
@filenames.each do |file|
|
152
161
|
if File.exist?(file) then
|
153
162
|
if File.writable?(file) then
|
154
|
-
|
155
|
-
# switching from a directory to another one for each file
|
156
|
-
cur_dir = Dir.pwd
|
157
|
-
Dir.chdir(File.dirname(file))
|
158
|
-
a_proc.call(File.basename(file), *others)
|
159
|
-
Dir.chdir(cur_dir)
|
163
|
+
a_proc.call(file, *others)
|
160
164
|
else
|
161
165
|
warn _("%s: You don't have write access on %s") % [Const::NAME, file]
|
162
166
|
end
|
163
167
|
else
|
164
|
-
warn _("%s: File
|
168
|
+
warn _("%s: File %s doesn't exists!") % [Const::NAME, file]
|
165
169
|
end
|
166
170
|
end
|
167
171
|
end
|
168
172
|
|
169
173
|
# Helper to rename files
|
170
174
|
def rename(old, new)
|
171
|
-
|
175
|
+
unless File.exist?(new) and @overwrite == false
|
176
|
+
# Expanding paths to make them reliable
|
177
|
+
old = File.expand_path(old)
|
178
|
+
new = File.join(File.dirname(old), File.basename(new))
|
179
|
+
# Renaming the file
|
172
180
|
File.rename(old, new)
|
173
181
|
else
|
174
|
-
warn EXISTS
|
182
|
+
warn EXISTS % [Const::NAME, new]
|
175
183
|
end
|
176
184
|
end
|
177
185
|
|
178
186
|
# Helper to rename files ensuring compatibily on all FS
|
179
187
|
def rename_fs(old, new)
|
180
|
-
unless File.exist?(new)
|
181
|
-
|
182
|
-
File.
|
188
|
+
unless File.exist?(new) and @overwrite == false
|
189
|
+
# Expanding paths to make them reliable
|
190
|
+
old = File.expand_path(old)
|
191
|
+
new = File.join(File.dirname(old), File.basename(new))
|
192
|
+
# Renaming the file
|
193
|
+
tf = Tempfile.new("renamer")
|
194
|
+
File.rename(old, tf.path)
|
195
|
+
File.rename(tf.path, new)
|
196
|
+
tf.close(true)
|
183
197
|
else
|
184
|
-
warn EXISTS
|
198
|
+
warn EXISTS % [Const::NAME, new]
|
185
199
|
end
|
186
200
|
end
|
187
|
-
end
|
201
|
+
end
|
data/po/fr/renamer.po
CHANGED
@@ -1,105 +1,115 @@
|
|
1
1
|
# translation of renamer.po to Français
|
2
|
-
# translation of fr.po to Français
|
3
2
|
# French translations for Renamer
|
4
3
|
# Copyright (C) 2005-2006 Nicolas Cavigneaux <nico@bounga.org>
|
5
4
|
# This file is distributed under the same license as Renamer.
|
6
|
-
# Nicolas Cavigneaux <nico@bounga.org>, 2005, 2006.
|
7
5
|
#
|
6
|
+
# Nicolas Cavigneaux <nico@bounga.org>, 2005, 2006.
|
8
7
|
msgid ""
|
9
8
|
msgstr ""
|
10
9
|
"Project-Id-Version: renamer\n"
|
11
|
-
"POT-Creation-Date: 2006-
|
12
|
-
"PO-Revision-Date: 2006-
|
10
|
+
"POT-Creation-Date: 2006-04-26 20:37+0200\n"
|
11
|
+
"PO-Revision-Date: 2006-04-26 20:39+0200\n"
|
13
12
|
"Last-Translator: Nicolas Cavigneaux <nico@bounga.org>\n"
|
14
13
|
"Language-Team: Français <fr@li.org>\n"
|
15
14
|
"MIME-Version: 1.0\n"
|
16
15
|
"Content-Type: text/plain; charset=UTF-8\n"
|
17
16
|
"Content-Transfer-Encoding: 8bit\n"
|
18
17
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
19
|
-
"X-Generator: KBabel 1.
|
18
|
+
"X-Generator: KBabel 1.11.2\n"
|
20
19
|
|
21
20
|
#: bin/renamer:73
|
21
|
+
msgid "Usage: %s [options] FILENAMES"
|
22
|
+
msgstr "Utilisation : %s [options] FICHIERS"
|
23
|
+
|
24
|
+
#: bin/renamer:75
|
22
25
|
msgid "Specific options:"
|
23
26
|
msgstr "Options spécifiques :"
|
24
27
|
|
25
|
-
#: bin/renamer:
|
28
|
+
#: bin/renamer:77
|
26
29
|
msgid "Downcase FILENAMES"
|
27
30
|
msgstr "Mettre FICHIERS en minuscules"
|
28
31
|
|
29
|
-
#: bin/renamer:
|
32
|
+
#: bin/renamer:78
|
30
33
|
msgid "Upcase FILENAMES"
|
31
34
|
msgstr "Mettre FICHIERS en majuscules"
|
32
35
|
|
33
|
-
#: bin/renamer:
|
36
|
+
#: bin/renamer:79
|
34
37
|
msgid "Capitalize FILENAMES"
|
35
38
|
msgstr "Capitalise FICHIERS"
|
36
39
|
|
37
|
-
#: bin/renamer:
|
40
|
+
#: bin/renamer:80
|
38
41
|
msgid "Capitalize each words in FILENAMES"
|
39
42
|
msgstr "Capitalise chaque mot dans FICHIERS"
|
40
43
|
|
41
|
-
#: bin/renamer:
|
42
|
-
#, fuzzy
|
44
|
+
#: bin/renamer:81
|
43
45
|
msgid "Replace spaces by underscores in FILENAMES"
|
44
|
-
msgstr "
|
46
|
+
msgstr "Transforme les espaces dans FICHIERS par des blancs soulignés"
|
45
47
|
|
46
|
-
#: bin/renamer:
|
48
|
+
#: bin/renamer:82
|
47
49
|
msgid "Replace underscores by spaces in FILENAMES"
|
48
50
|
msgstr "Remplace les blancs soulignés par des espaces dans FICHIERS "
|
49
51
|
|
50
|
-
#: bin/renamer:
|
52
|
+
#: bin/renamer:83
|
51
53
|
msgid "--basename BASENAME"
|
52
54
|
msgstr "--basename NOM_DE_BASE"
|
53
55
|
|
54
|
-
#: bin/renamer:
|
56
|
+
#: bin/renamer:83
|
55
57
|
msgid "Rename FILENAMES using the specified"
|
56
58
|
msgstr "Renomme FICHIERS. en utilisant le"
|
57
59
|
|
58
|
-
#: bin/renamer:
|
60
|
+
#: bin/renamer:83
|
59
61
|
msgid "BASENAME followed by an incremental number"
|
60
62
|
msgstr "NOM_DE_BASE spécifié suivit d'un nombre incrémental"
|
61
63
|
|
62
|
-
#: bin/renamer:
|
64
|
+
#: bin/renamer:84
|
63
65
|
msgid "--ext NEW"
|
64
66
|
msgstr "--ext NOUVELLE"
|
65
67
|
|
66
|
-
#: bin/renamer:
|
68
|
+
#: bin/renamer:84
|
67
69
|
msgid "Rename FILENAMES from their actual extension"
|
68
70
|
msgstr "Renomme FICHIERS de leur extension actuelle"
|
69
71
|
|
70
|
-
#: bin/renamer:
|
72
|
+
#: bin/renamer:84
|
71
73
|
msgid "to the NEW one"
|
72
74
|
msgstr "à la NOUVELLE"
|
73
75
|
|
74
|
-
#: bin/renamer:
|
76
|
+
#: bin/renamer:85
|
75
77
|
msgid "Run %s recursively across directories"
|
76
78
|
msgstr "Éxécute %s récurisivement à travers les répertoires"
|
77
79
|
|
78
80
|
#: bin/renamer:86
|
81
|
+
msgid "Overwrite existing files if needed"
|
82
|
+
msgstr "Écrase les fichiers existants si nécessaire"
|
83
|
+
|
84
|
+
#: bin/renamer:87
|
85
|
+
msgid "Run %s in verbose mode (quiet by default)"
|
86
|
+
msgstr "Éxécute %s en mode verbeux (silencieux par défaut) "
|
87
|
+
|
88
|
+
#: bin/renamer:90
|
79
89
|
msgid "Common options:"
|
80
90
|
msgstr "Options habituelles"
|
81
91
|
|
82
|
-
#: bin/renamer:
|
92
|
+
#: bin/renamer:92
|
83
93
|
msgid "Show this help"
|
84
94
|
msgstr "Affiche cette aide"
|
85
95
|
|
86
|
-
#: bin/renamer:
|
96
|
+
#: bin/renamer:93
|
87
97
|
msgid "Show %s version"
|
88
98
|
msgstr "Affiche la version de %s"
|
89
99
|
|
90
|
-
#: bin/renamer:
|
100
|
+
#: bin/renamer:94
|
91
101
|
msgid "Show some information about %s license"
|
92
102
|
msgstr "Affiche quelques informations à propos de la licence de %s"
|
93
103
|
|
94
|
-
#: lib/renamer.rb:
|
95
|
-
msgid "%s:
|
96
|
-
msgstr "%s : Le fichier
|
104
|
+
#: lib/renamer.rb:30
|
105
|
+
msgid "%s: %s file already exists!"
|
106
|
+
msgstr "%s : Le fichier %s existe déjà !"
|
97
107
|
|
98
|
-
#: lib/renamer.rb:
|
108
|
+
#: lib/renamer.rb:165
|
99
109
|
msgid "%s: You don't have write access on %s"
|
100
110
|
msgstr "%s : Vous n'avez pas les droits en écriture sur %s"
|
101
111
|
|
102
|
-
#: lib/renamer.rb:
|
103
|
-
msgid "%s: File
|
104
|
-
msgstr "%s : Le fichier
|
112
|
+
#: lib/renamer.rb:168
|
113
|
+
msgid "%s: File %s doesn't exists!"
|
114
|
+
msgstr "%s : Le fichier %s n'existe pas !"
|
105
115
|
|
data/po/renamer.pot
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
#, fuzzy
|
7
7
|
msgid ""
|
8
8
|
msgstr ""
|
9
|
-
"Project-Id-Version: 0.4.
|
10
|
-
"POT-Creation-Date: 2006-
|
9
|
+
"Project-Id-Version: 0.4.1\n"
|
10
|
+
"POT-Creation-Date: 2006-04-26 20:37+0200\n"
|
11
11
|
"PO-Revision-Date: 2005-12-16 21:30+0100\n"
|
12
12
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13
13
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -17,85 +17,97 @@ msgstr ""
|
|
17
17
|
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
18
18
|
|
19
19
|
#: bin/renamer:73
|
20
|
-
msgid "
|
20
|
+
msgid "Usage: %s [options] FILENAMES"
|
21
21
|
msgstr ""
|
22
22
|
|
23
23
|
#: bin/renamer:75
|
24
|
+
msgid "Specific options:"
|
25
|
+
msgstr ""
|
26
|
+
|
27
|
+
#: bin/renamer:77
|
24
28
|
msgid "Downcase FILENAMES"
|
25
29
|
msgstr ""
|
26
30
|
|
27
|
-
#: bin/renamer:
|
31
|
+
#: bin/renamer:78
|
28
32
|
msgid "Upcase FILENAMES"
|
29
33
|
msgstr ""
|
30
34
|
|
31
|
-
#: bin/renamer:
|
35
|
+
#: bin/renamer:79
|
32
36
|
msgid "Capitalize FILENAMES"
|
33
37
|
msgstr ""
|
34
38
|
|
35
|
-
#: bin/renamer:
|
39
|
+
#: bin/renamer:80
|
36
40
|
msgid "Capitalize each words in FILENAMES"
|
37
41
|
msgstr ""
|
38
42
|
|
39
|
-
#: bin/renamer:
|
43
|
+
#: bin/renamer:81
|
40
44
|
msgid "Replace spaces by underscores in FILENAMES"
|
41
45
|
msgstr ""
|
42
46
|
|
43
|
-
#: bin/renamer:
|
47
|
+
#: bin/renamer:82
|
44
48
|
msgid "Replace underscores by spaces in FILENAMES"
|
45
49
|
msgstr ""
|
46
50
|
|
47
|
-
#: bin/renamer:
|
51
|
+
#: bin/renamer:83
|
48
52
|
msgid "--basename BASENAME"
|
49
53
|
msgstr ""
|
50
54
|
|
51
|
-
#: bin/renamer:
|
55
|
+
#: bin/renamer:83
|
52
56
|
msgid "Rename FILENAMES using the specified"
|
53
57
|
msgstr ""
|
54
58
|
|
55
|
-
#: bin/renamer:
|
59
|
+
#: bin/renamer:83
|
56
60
|
msgid "BASENAME followed by an incremental number"
|
57
61
|
msgstr ""
|
58
62
|
|
59
|
-
#: bin/renamer:
|
63
|
+
#: bin/renamer:84
|
60
64
|
msgid "--ext NEW"
|
61
65
|
msgstr ""
|
62
66
|
|
63
|
-
#: bin/renamer:
|
67
|
+
#: bin/renamer:84
|
64
68
|
msgid "Rename FILENAMES from their actual extension"
|
65
69
|
msgstr ""
|
66
70
|
|
67
|
-
#: bin/renamer:
|
71
|
+
#: bin/renamer:84
|
68
72
|
msgid "to the NEW one"
|
69
73
|
msgstr ""
|
70
74
|
|
71
|
-
#: bin/renamer:
|
75
|
+
#: bin/renamer:85
|
72
76
|
msgid "Run %s recursively across directories"
|
73
77
|
msgstr ""
|
74
78
|
|
75
79
|
#: bin/renamer:86
|
80
|
+
msgid "Overwrite existing files if needed"
|
81
|
+
msgstr ""
|
82
|
+
|
83
|
+
#: bin/renamer:87
|
84
|
+
msgid "Run %s in verbose mode (quiet by default)"
|
85
|
+
msgstr ""
|
86
|
+
|
87
|
+
#: bin/renamer:90
|
76
88
|
msgid "Common options:"
|
77
89
|
msgstr ""
|
78
90
|
|
79
|
-
#: bin/renamer:
|
91
|
+
#: bin/renamer:92
|
80
92
|
msgid "Show this help"
|
81
93
|
msgstr ""
|
82
94
|
|
83
|
-
#: bin/renamer:
|
95
|
+
#: bin/renamer:93
|
84
96
|
msgid "Show %s version"
|
85
97
|
msgstr ""
|
86
98
|
|
87
|
-
#: bin/renamer:
|
99
|
+
#: bin/renamer:94
|
88
100
|
msgid "Show some information about %s license"
|
89
101
|
msgstr ""
|
90
102
|
|
91
|
-
#: lib/renamer.rb:
|
92
|
-
msgid "%s:
|
103
|
+
#: lib/renamer.rb:30
|
104
|
+
msgid "%s: %s file already exists!"
|
93
105
|
msgstr ""
|
94
106
|
|
95
|
-
#: lib/renamer.rb:
|
107
|
+
#: lib/renamer.rb:165
|
96
108
|
msgid "%s: You don't have write access on %s"
|
97
109
|
msgstr ""
|
98
110
|
|
99
|
-
#: lib/renamer.rb:
|
100
|
-
msgid "%s: File
|
111
|
+
#: lib/renamer.rb:168
|
112
|
+
msgid "%s: File %s doesn't exists!"
|
101
113
|
msgstr ""
|
data/test/tc_renamer.rb
CHANGED
@@ -30,6 +30,7 @@ $:.unshift(File.dirname(__FILE__) + "/../lib/")
|
|
30
30
|
require 'test/unit'
|
31
31
|
require 'rubygems'
|
32
32
|
require 'gettext'
|
33
|
+
require 'tempfile'
|
33
34
|
require 'fileutils'
|
34
35
|
require 'const'
|
35
36
|
require 'renamer'
|
@@ -91,6 +92,29 @@ class TestRenamer < Test::Unit::TestCase
|
|
91
92
|
assert_nothing_raised(Errno::ENOENT) { File.open("test2/plop.txt") }
|
92
93
|
end
|
93
94
|
|
95
|
+
def test_overwrite
|
96
|
+
# First we test that it doesn't overwrite when overwrite is false
|
97
|
+
@files << File.new("plop_plop", "w").path
|
98
|
+
@files << File.new("plop plop", "w").path
|
99
|
+
|
100
|
+
r = Renamer.new(@files, false, false)
|
101
|
+
r.underscore_to_space
|
102
|
+
|
103
|
+
assert_nothing_raised(Errno::ENOENT) { File.open("plop_plop") }
|
104
|
+
assert_nothing_raised(Errno::ENOENT) { File.open("plop plop") }
|
105
|
+
|
106
|
+
# Now we test that files are overwrited when overwrite is true
|
107
|
+
@files.clear
|
108
|
+
@files << File.new("test_test", "w").path
|
109
|
+
@files << File.new("test test", "w").path
|
110
|
+
|
111
|
+
r = Renamer.new(@files, false, true)
|
112
|
+
r.underscore_to_space
|
113
|
+
|
114
|
+
assert_raise(Errno::ENOENT) { File.open("test_test") }
|
115
|
+
assert_nothing_raised(Errno::ENOENT) { File.open("test test") }
|
116
|
+
end
|
117
|
+
|
94
118
|
def test_downcase
|
95
119
|
@files << File.new("PLOP", "w").path
|
96
120
|
@files << File.new("PLOP.txt", "w").path
|
@@ -240,6 +264,8 @@ class TestRenamer < Test::Unit::TestCase
|
|
240
264
|
@files << File.new("test test_test.txt", "w").path
|
241
265
|
@files << File.new("teST.jpg.txt", "w").path
|
242
266
|
@files << File.new(".dotfile", "w").path
|
267
|
+
Dir.mkdir("tmp_files2")
|
268
|
+
@files << File.new("tmp_files2/.dotfile", "w").path
|
243
269
|
|
244
270
|
r = Renamer.new(@files)
|
245
271
|
r.ext("rnm")
|
@@ -252,5 +278,6 @@ class TestRenamer < Test::Unit::TestCase
|
|
252
278
|
assert_nothing_raised(Errno::ENOENT) { File.open("test test_test.rnm") }
|
253
279
|
assert_nothing_raised(Errno::ENOENT) { File.open("teST.jpg.rnm") }
|
254
280
|
assert_nothing_raised(Errno::ENOENT) { File.open(".dotfile") }
|
281
|
+
assert_nothing_raised(Errno::ENOENT) { File.open("tmp_files2/.dotfile") }
|
255
282
|
end
|
256
283
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: Renamer
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.4.
|
7
|
-
date: 2006-
|
6
|
+
version: 0.4.2
|
7
|
+
date: 2006-05-02 00:00:00 +02:00
|
8
8
|
summary: A fast and light utility to massively rename your files
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -29,25 +29,22 @@ authors:
|
|
29
29
|
- Nicolas Cavigneaux
|
30
30
|
files:
|
31
31
|
- bin/renamer
|
32
|
-
- doc/FAQ
|
33
32
|
- doc/AUTHORS
|
34
33
|
- doc/BUGS
|
35
34
|
- doc/COPYING
|
35
|
+
- doc/ChangeLog
|
36
|
+
- doc/FAQ
|
36
37
|
- doc/HACKING
|
37
|
-
- doc/renamer
|
38
38
|
- doc/TODO
|
39
|
+
- doc/renamer
|
39
40
|
- doc/renamer.1.gz
|
40
|
-
- doc/ChangeLog
|
41
41
|
- lib/const.rb
|
42
42
|
- lib/renamer.rb
|
43
|
-
- po/renamer.pot
|
44
43
|
- po/fr
|
44
|
+
- po/renamer.pot
|
45
45
|
- po/fr/renamer.po
|
46
|
-
- locale/fr
|
47
|
-
- locale/fr/LC_MESSAGES
|
48
|
-
- locale/fr/LC_MESSAGES/renamer.mo
|
49
|
-
- test/ts_renamer.rb
|
50
46
|
- test/tc_renamer.rb
|
47
|
+
- test/ts_renamer.rb
|
51
48
|
- README
|
52
49
|
test_files:
|
53
50
|
- test/ts_renamer.rb
|
Binary file
|