[CalendarServer-changes] [11219] CalDAVClientLibrary/trunk/caldavclientlibrary/browser
source_changes at macosforge.org
source_changes at macosforge.org
Fri May 17 19:04:35 PDT 2013
Revision: 11219
http://trac.calendarserver.org//changeset/11219
Author: cdaboo at apple.com
Date: 2013-05-17 19:04:35 -0700 (Fri, 17 May 2013)
Log Message:
-----------
Fix tab completion when there are cli options present.
Modified Paths:
--------------
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/baseshell.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/command.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/acl.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/addressbooks.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/attach.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/calendars.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/cat.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/cd.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/import.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/ls.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkadbk.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkcal.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkdir.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mv.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/props.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/put.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/query.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/quota.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/rm.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/share.py
CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/sync.py
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/baseshell.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/baseshell.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/baseshell.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -185,9 +185,12 @@
# if self.last_wd_complete[0] == text:
# return self.last_wd_complete[1]
+ # Split on whitespace and use the last item as the token
+ tokens = text.split()
+
# Look for relative vs absolute
- if text and text[0] == "/":
- dirname, _ignore_child = os.path.split(text)
+ if tokens[-1] and tokens[-1][0] == "/":
+ dirname, _ignore_child = os.path.split(tokens[-1])
path = dirname
if not path.endswith("/"):
path += "/"
@@ -195,7 +198,7 @@
else:
path = self.wd
pathlen = len(path) + (0 if path.endswith("/") else 1)
- dirname, _ignore_child = os.path.split(text)
+ dirname, _ignore_child = os.path.split(tokens[-1])
if dirname:
path = os.path.join(path, dirname)
if not path.endswith("/"):
@@ -209,10 +212,10 @@
results = [urllib.unquote(result) for result in results.iterkeys()]
results = [result[pathlen:] for result in results if len(result) > pathlen]
# print results
- if text:
- textlen = len(text)
- results = [result for result in results if result[:textlen] == text]
+ if tokens[-1]:
+ textlen = len(tokens[-1])
+ results = [result for result in results if result[:textlen] == tokens[-1]]
# print results
- self.last_wd_complete = (text, results,)
+ self.last_wd_complete = (tokens[-1], results,)
return results
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/command.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/command.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/command.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -20,6 +20,7 @@
self.shell = None
self.cmds = ()
+ self.do_wd_complete = False
def execute(self, name, options):
@@ -58,7 +59,7 @@
def complete(self, text):
- return ()
+ return () if not self.do_wd_complete else self.shell.wdcomplete(text)
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/acl.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/acl.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/acl.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -35,6 +35,7 @@
super(Command, self).__init__()
self.cmds = ("acl",)
self.subshell = None
+ self.do_wd_complete = True
def execute(self, cmdname, options):
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/addressbooks.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/addressbooks.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/addressbooks.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -25,6 +25,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("addressbooks",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -60,10 +61,6 @@
return result
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s [PRINCIPAL]
PRINCIPAL is a principal-URL or principal UID..
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/attach.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/attach.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/attach.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -26,6 +26,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("attach",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -118,10 +119,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s OPTIONS PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/calendars.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/calendars.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/calendars.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -25,6 +25,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("calendars",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -60,10 +61,6 @@
return result
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s [PRINCIPAL]
PRINCIPAL is a principal-URL or principal UID.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/cat.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/cat.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/cat.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -26,6 +26,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("cat", "more",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -48,10 +49,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/cd.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/cd.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/cd.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -25,6 +25,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("cd",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -52,10 +53,6 @@
return result
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/import.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/import.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/import.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -26,6 +26,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("import",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -89,10 +90,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s OPTIONS PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/ls.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/ls.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/ls.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -29,6 +29,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("ls",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -155,10 +156,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s [OPTIONS] [PATH]
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkadbk.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkadbk.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkadbk.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -26,6 +26,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("mkadbk",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -54,10 +55,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkcal.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkcal.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkcal.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -26,6 +26,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("mkcal",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -54,10 +55,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkdir.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkdir.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mkdir.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -26,6 +26,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("mkdir",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -54,10 +55,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mv.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mv.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/mv.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -27,6 +27,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("mv", "move",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -73,10 +74,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s PATH PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/props.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/props.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/props.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -27,6 +27,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("props",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -88,10 +89,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s [OPTIONS] [PATH]
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/put.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/put.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/put.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -26,6 +26,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("put", "write",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -84,10 +85,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s OPTIONS PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/query.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/query.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/query.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -29,6 +29,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("query",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -89,10 +90,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s OPTIONS PATH
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/quota.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/quota.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/quota.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -27,6 +27,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("quota",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -81,10 +82,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s [PATH]
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/rm.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/rm.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/rm.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -27,6 +27,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("rm",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -68,10 +69,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s PATH *[PATH]
PATH is a relative or absolute path.
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/share.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/share.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/share.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -31,6 +31,7 @@
super(Command, self).__init__()
self.cmds = ("share",)
self.subshell = None
+ self.do_wd_complete = True
def execute(self, cmdname, options):
Modified: CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/sync.py
===================================================================
--- CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/sync.py 2013-05-18 01:41:40 UTC (rev 11218)
+++ CalDAVClientLibrary/trunk/caldavclientlibrary/browser/commands/sync.py 2013-05-18 02:04:35 UTC (rev 11219)
@@ -28,6 +28,7 @@
def __init__(self):
super(Command, self).__init__()
self.cmds = ("sync",)
+ self.do_wd_complete = True
def execute(self, cmdname, options):
@@ -76,10 +77,6 @@
return True
- def complete(self, text):
- return self.shell.wdcomplete(text)
-
-
def usage(self, name):
return """Usage: %s [OPTIONS] [PATH]
PATH is a relative or absolute path.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130517/bf6071d3/attachment-0001.html>
More information about the calendarserver-changes
mailing list