symbian-qemu-0.9.1-12/python-2.6.1/Tools/scripts/svneol.py
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Tools/scripts/svneol.py	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,91 @@
+#! /usr/bin/env python
+
+"""
+SVN helper script.
+
+Try to set the svn:eol-style property to "native" on every .py, .txt, .c and
+.h file in the directory tree rooted at the current directory.
+
+Files with the svn:eol-style property already set (to anything) are skipped.
+
+svn will itself refuse to set this property on a file that's not under SVN
+control, or that has a binary mime-type property set.  This script inherits
+that behavior, and passes on whatever warning message the failing "svn
+propset" command produces.
+
+In the Python project, it's safe to invoke this script from the root of
+a checkout.
+
+No output is produced for files that are ignored.  For a file that gets
+svn:eol-style set, output looks like:
+
+    property 'svn:eol-style' set on 'Lib\ctypes\__init__.py'
+
+For a file not under version control:
+
+    svn: warning: 'patch-finalizer.txt' is not under version control
+
+and for a file with a binary mime-type property:
+
+    svn: File 'Lib\test\test_pep263.py' has binary mime type property
+"""
+
+import re
+import os
+
+def propfiles(root, fn):
+    default = os.path.join(root, ".svn", "props", fn+".svn-work")
+    try:
+        format = int(open(os.path.join(root, ".svn", "format")).read().strip())
+    except IOError:
+        return []
+    if format == 8:
+        # In version 8, committed props are stored in prop-base,
+        # local modifications in props
+        return [os.path.join(root, ".svn", "prop-base", fn+".svn-base"),
+                os.path.join(root, ".svn", "props", fn+".svn-work")]
+    raise ValueError, "Unknown repository format"
+
+def proplist(root, fn):
+    "Return a list of property names for file fn in directory root"
+    result = []
+    for path in propfiles(root, fn):
+        try:
+            f = open(path)
+        except IOError:
+            # no properties file: not under version control,
+            # or no properties set
+            continue
+        while 1:
+            # key-value pairs, of the form
+            # K <length>
+            # <keyname>NL
+            # V length
+            # <value>NL
+            # END
+            line = f.readline()
+            if line.startswith("END"):
+                break
+            assert line.startswith("K ")
+            L = int(line.split()[1])
+            key = f.read(L)
+            result.append(key)
+            f.readline()
+            line = f.readline()
+            assert line.startswith("V ")
+            L = int(line.split()[1])
+            value = f.read(L)
+            f.readline()
+        f.close()
+    return result
+
+possible_text_file = re.compile(r"\.([hc]|py|txt|sln|vcproj)$").search
+
+for root, dirs, files in os.walk('.'):
+    if '.svn' in dirs:
+        dirs.remove('.svn')
+    for fn in files:
+        if possible_text_file(fn):
+            if 'svn:eol-style' not in proplist(root, fn):
+                path = os.path.join(root, fn)
+                os.system('svn propset svn:eol-style native "%s"' % path)