[CalendarServer-changes] [2618] CalendarServer/trunk/contrib/tools
source_changes at macosforge.org
source_changes at macosforge.org
Mon Jun 23 13:32:56 PDT 2008
Revision: 2618
http://trac.macosforge.org/projects/calendarserver/changeset/2618
Author: cdaboo at apple.com
Date: 2008-06-23 13:32:56 -0700 (Mon, 23 Jun 2008)
Log Message:
-----------
Changed the name.
Added Paths:
-----------
CalendarServer/trunk/contrib/tools/fix_calendar
Removed Paths:
-------------
CalendarServer/trunk/contrib/tools/xattr_fix.py
Copied: CalendarServer/trunk/contrib/tools/fix_calendar (from rev 2616, CalendarServer/trunk/contrib/tools/xattr_fix.py)
===================================================================
--- CalendarServer/trunk/contrib/tools/fix_calendar (rev 0)
+++ CalendarServer/trunk/contrib/tools/fix_calendar 2008-06-23 20:32:56 UTC (rev 2618)
@@ -0,0 +1,106 @@
+#!/usr/bin/env python
+##
+# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##
+
+import getopt
+import hashlib
+import os
+import sys
+import xattr
+
+"""
+Fix xattrs on calendar collections and calendar object resources
+"""
+
+def usage():
+ print """Usage: xattr_fix CALENDARS
+Options:
+
+CALENDARS - a list of directories that are to be treated as calendars
+
+Description:
+This utility will add xattrs to the specified directories and their contents
+to make them appear to be calendars and calendar resources when used with
+iCal Server.
+
+It can be used to fix xattrs lost as a result of restoring an iCal Server document
+root without properly preserving the xattrs.
+"""
+
+def fixCalendar(path):
+
+ # First fix the resourcetype & getctag on the calendar
+ x = xattr.xattr(path)
+ x["WebDAV:{DAV:}resourcetype"] = """<?xml version='1.0' encoding='UTF-8'?>
+<resourcetype xmlns='DAV:'>
+ <collection/>
+ <calendar xmlns='urn:ietf:params:xml:ns:caldav'/>
+</resourcetype>
+"""
+
+ x["WebDAV:{http:%2F%2Fcalendarserver.org%2Fns%2F}getctag"] = """<?xml version='1.0' encoding='UTF-8'?>
+<getctag xmlns='http://calendarserver.org/ns/'>Dummy Value</getctag>
+"""
+
+ # Now deal with contenttype on child .ics files
+ for child in os.listdir(path):
+ if not child.endswith(".ics"):
+ continue
+ fullpath = os.path.join(path, child)
+
+ # getcontenttype
+ x = xattr.xattr(fullpath)
+ x["WebDAV:{DAV:}getcontenttype"] = """<?xml version='1.0' encoding='UTF-8'?>
+<getcontenttype xmlns='DAV:'>text/calendar</getcontenttype>
+"""
+
+ # md5
+ data = open(fullpath).read()
+ x["WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2F}getcontentmd5"] = """<?xml version='1.0' encoding='UTF-8'?>
+<getcontentmd5 xmlns='http://twistedmatrix.com/xml_namespace/dav/'>%s</getcontentmd5>
+""" % (hashlib.md5(data).hexdigest(),)
+
+if __name__ == "__main__":
+
+ try:
+ options, args = getopt.getopt(sys.argv[1:], "")
+
+ # Process arguments
+ if len(args) == 0:
+ print "No arguments given."
+ usage()
+ raise ValueError
+
+ pwd = os.getcwd()
+
+ for arg in args:
+ if not arg.startswith("/"):
+ arg = os.path.join(pwd, arg)
+ if arg.endswith("/"):
+ arg = arg[:-1]
+ if not os.path.exists(arg):
+ print "Path does not exist: '%s'. Ignoring." % (arg,)
+ continue
+
+ if os.path.basename(arg) in ("inbox", "outbox", "dropbox",):
+ print "Cannot be used on inbox, outbox or dropbox."
+ continue
+
+ fixCalendar(arg)
+
+ except Exception, e:
+ sys.exit(str(e))
+
\ No newline at end of file
Deleted: CalendarServer/trunk/contrib/tools/xattr_fix.py
===================================================================
--- CalendarServer/trunk/contrib/tools/xattr_fix.py 2008-06-23 20:31:53 UTC (rev 2617)
+++ CalendarServer/trunk/contrib/tools/xattr_fix.py 2008-06-23 20:32:56 UTC (rev 2618)
@@ -1,106 +0,0 @@
-#!/usr/bin/env python
-##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-##
-
-import getopt
-import hashlib
-import os
-import sys
-import xattr
-
-"""
-Fix xattrs on calendar collections and calendar object resources
-"""
-
-def usage():
- print """Usage: xattr_fix CALENDARS
-Options:
-
-CALENDARS - a list of directories that are to be treated as calendars
-
-Description:
-This utility will add xattrs to the specified directories and their contents
-to make them appear to be calendars and calendar resources when used with
-iCal Server.
-
-It can be used to fix xattrs lost as a result of restoring an iCal Server document
-root without properly preserving the xattrs.
-"""
-
-def fixCalendar(path):
-
- # First fix the resourcetype & getctag on the calendar
- x = xattr.xattr(path)
- x["WebDAV:{DAV:}resourcetype"] = """<?xml version='1.0' encoding='UTF-8'?>
-<resourcetype xmlns='DAV:'>
- <collection/>
- <calendar xmlns='urn:ietf:params:xml:ns:caldav'/>
-</resourcetype>
-"""
-
- x["WebDAV:{http:%2F%2Fcalendarserver.org%2Fns%2F}getctag"] = """<?xml version='1.0' encoding='UTF-8'?>
-<getctag xmlns='http://calendarserver.org/ns/'>Dummy Value</getctag>
-"""
-
- # Now deal with contenttype on child .ics files
- for child in os.listdir(path):
- if not child.endswith(".ics"):
- continue
- fullpath = os.path.join(path, child)
-
- # getcontenttype
- x = xattr.xattr(fullpath)
- x["WebDAV:{DAV:}getcontenttype"] = """<?xml version='1.0' encoding='UTF-8'?>
-<getcontenttype xmlns='DAV:'>text/calendar</getcontenttype>
-"""
-
- # md5
- data = open(fullpath).read()
- x["WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2F}getcontentmd5"] = """<?xml version='1.0' encoding='UTF-8'?>
-<getcontentmd5 xmlns='http://twistedmatrix.com/xml_namespace/dav/'>%s</getcontentmd5>
-""" % (hashlib.md5(data).hexdigest(),)
-
-if __name__ == "__main__":
-
- try:
- options, args = getopt.getopt(sys.argv[1:], "")
-
- # Process arguments
- if len(args) == 0:
- print "No arguments given."
- usage()
- raise ValueError
-
- pwd = os.getcwd()
-
- for arg in args:
- if not arg.startswith("/"):
- arg = os.path.join(pwd, arg)
- if arg.endswith("/"):
- arg = arg[:-1]
- if not os.path.exists(arg):
- print "Path does not exist: '%s'. Ignoring." % (arg,)
- continue
-
- if os.path.basename(arg) in ("inbox", "outbox", "dropbox",):
- print "Cannot be used on inbox, outbox or dropbox."
- continue
-
- fixCalendar(arg)
-
- except Exception, e:
- sys.exit(str(e))
-
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080623/7a0a3c8a/attachment-0001.htm
More information about the calendarserver-changes
mailing list