Mercurial > ec-dotfiles
annotate bin/putcrc.pl @ 453:c3bfb45757e9
FreeBSD grep is GNU grep. Well, up to 9.x.
| author | Edho Arief <edho@myconan.net> | 
|---|---|
| date | Fri, 15 Feb 2013 18:18:18 +0900 | 
| parents | 5bafb912837e | 
| children | 
| rev | line source | 
|---|---|
| 
124
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
1 #!/usr/bin/perl | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
2 | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
3 use warnings; | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
4 use strict; | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
5 use String::CRC32; | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
6 | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
7 my @files = @ARGV or print("Usage: ren file1 ... fileN\n") && exit(1); | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
8 my $skip=0; | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
9 foreach (@files) { | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
10 my $newname = $_; | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
11 open(FILE,$_); | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
12 my $crc=sprintf("%08X",crc32(*FILE)); | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
13 close(FILE); | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
14 $newname =~ s/(.*)\.([^.]*)/$1 [$crc].$2/; | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
15 $newname =~ s/\] (\[$crc)/]$1/; | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
16 print(qq($_: $newname already exists, skipping\n)) and next() if -e $newname and $_ ne $newname; | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
17 if ($_ eq $newname) { | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
18 print("$_: no need to rename, skipping\n"); | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
19 } else { | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
20 if($skip==1) { print("$_ --> $newname\n"); } | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
21 else { | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
22 if(rename($_, $newname)) { print("$_ -> $newname\n"); } | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
23 else { print("$_: rename failed"); } | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
24 } | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
25 } | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
26 next(); | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
27 } | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
28 | 
| 
 
5bafb912837e
Massive addition of old scripts collection.
 
Edho Prima Arief <edho@myconan.net> 
parents:  
diff
changeset
 | 
29 exit(0); | 
