#!/usr/bin/env python2
#!/usr/bin/python
# ==============================================================================
# Copyright and license info is available in the LICENSE file included with
# the Server Deployment Package (SDP), and also available online:
# https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE
# ------------------------------------------------------------------------------
# Usage:
# This script is used to rename a tree to all lowercase. It is helpful if you are
# trying to convert your server from case sensitive to case insensitive.
#
# It takes the directory to convert as the first parameter.
import sys, os
def rename_dir(directory):
# rename current directory if needed
try:
os.rename(directory, directory.lower())
except:
print("Rename of %s failed." % directory)
directory = directory.lower()
# rename children
for fn in os.listdir(directory):
path = os.path.join(directory, fn)
lowpath = path.lower()
try:
if (path != lowpath):
print("Renaming %s" % path)
os.rename(path, lowpath)
except:
print("Rename of %s failed." % path)
path = lowpath
# rename children within, if this child is a directory
if os.path.isdir(path):
rename_dir(path)
###############################################################################
if __name__ == '__main__':
if len(sys.argv) <= 1:
print("Read the usage section at the top of the script for required parameters.")
sys.exit(1)
rename_dir(sys.argv[1])