|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# Awk script to convert filenames shortened down to 8.3
|
|
Packit |
fd8b60 |
# back to their larger size.
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# Works by looking at every filename and seeing if it's shortened
|
|
Packit |
fd8b60 |
# 8.3 version exists, and if so then mv the short name to the long
|
|
Packit |
fd8b60 |
# name.
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# Usage: find . -type f -print | gawk -f ren2long.awk | sh -x [ 2> /dev/null ]
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
# Parse_path
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# Takes the whole path and converts the basename part to 8.3. If it
|
|
Packit |
fd8b60 |
# changed in the process we emit a sh command to mv it if the shortened
|
|
Packit |
fd8b60 |
# name exists.
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
function parse_path(p,P2,N,NEW) {
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
P2 = tolower(p)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
NEW = ""
|
|
Packit |
fd8b60 |
while(1) {
|
|
Packit |
fd8b60 |
N = index(P2,"/") # Go until all / are parsed
|
|
Packit |
fd8b60 |
if (N == 0) break
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
NEW = NEW name83(substr(P2,1,N-1)) "/"; # More of the path
|
|
Packit |
fd8b60 |
P2 = substr(P2,N+1)
|
|
Packit |
fd8b60 |
}
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if (bad[P2] == 1) {
|
|
Packit |
fd8b60 |
print "echo skipping " p
|
|
Packit |
fd8b60 |
return
|
|
Packit |
fd8b60 |
}
|
|
Packit |
fd8b60 |
NEW = NEW name83(P2) # Append path and 8.3 name
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if (bad[P2] == 2) {
|
|
Packit |
fd8b60 |
print "if [ -f " NEW " ]; then echo ::rm " NEW " ; rm " NEW " ; fi"
|
|
Packit |
fd8b60 |
return
|
|
Packit |
fd8b60 |
}
|
|
Packit |
fd8b60 |
if (NEW != p)
|
|
Packit |
fd8b60 |
print "if [ -f " NEW " ]; then echo ::mv " NEW " " p " ; mv " NEW " " p " ; fi"
|
|
Packit |
fd8b60 |
}
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# Name83
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# Converts the a single component part of a file name into 8.3 format
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
function name83(fname,P,B,E) {
|
|
Packit |
fd8b60 |
P = index(fname,"."); # Find the extension
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if (P == 0) { # No extension
|
|
Packit |
fd8b60 |
B = substr(fname,1,8); # Just truncate at 8 chars
|
|
Packit |
fd8b60 |
return B;
|
|
Packit |
fd8b60 |
}
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
B = substr(fname, 1, P <= 8 ? P-1 : 8); # At most 8 chars in name
|
|
Packit |
fd8b60 |
E = substr(fname, P+1, 3) # And 3 in extension
|
|
Packit |
fd8b60 |
P = index(E, ".") # 2 dot problem
|
|
Packit |
fd8b60 |
if (P)
|
|
Packit |
fd8b60 |
E = substr(E, 1, P-1)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
B = B "." E # Put name together
|
|
Packit |
fd8b60 |
return B
|
|
Packit |
fd8b60 |
}
|
|
Packit |
fd8b60 |
BEGIN {
|
|
Packit |
fd8b60 |
bad["krb5-types-aux.h"] = 1
|
|
Packit |
fd8b60 |
bad["autoconf.h.in"] = 1
|
|
Packit |
fd8b60 |
bad["conv_tkt_skey.c"] = 1
|
|
Packit |
fd8b60 |
##bad["makefile"] = 2 -- windows have legitimate files with this name
|
|
Packit |
fd8b60 |
}
|
|
Packit |
fd8b60 |
{
|
|
Packit |
fd8b60 |
parse_path($1) # Do it
|
|
Packit |
fd8b60 |
}
|