class Shell(BaseShell): def __init__(self, server, path, user, pswd, logging, noHostRedirect=False, afunix=None): super(Shell, self).__init__("caldav_client") self.prefix = self.wd = "/" self.server = server self.user = user self.pswd = pswd self.registerCommands() # Create the account ssl = server.startswith("https://") server = server[8:] if ssl else server[7:] self.account = CalDAVAccount(server, ssl=ssl, afunix=afunix, user=self.user, pswd=self.pswd, root=path, principal=None, logging=logging, noHostRedirect=noHostRedirect) atexit.register(self.saveHistory) def registerCommands(self): module = caldavclientlibrary.browser.commands for item in module.__all__: mod = __import__("caldavclientlibrary.browser.commands." + item, globals(), locals(), [ "Cmd", ]) cmd_class = mod.Cmd if type(cmd_class) is type and issubclass(cmd_class, Command): self.registerCommand(cmd_class()) def setWD(self, newwd): # Check that the new one exists resource = (newwd if newwd.endswith("/") else newwd + "/") if not self.account.session.testResource(URL(url=resource)): return False self.prefix = self.wd = newwd return True def setUserPswd(self, user, pswd): self.user = user self.pswd = pswd self.account.setUserPswd(user, pswd)