| 399 | return cd_parser |
| 400 | |
| 401 | def execute(self, params, **kwargs): |
| 402 | folder_name = kwargs['folder'] if 'folder' in kwargs else '' |
| 403 | if folder_name: |
| 404 | if folder_name in params.folder_cache or folder_name in params.nested_share_folders: |
| 405 | params.current_folder = folder_name |
| 406 | else: |
| 407 | rs = try_resolve_path(params, folder_name) |
| 408 | if rs is not None: |
| 409 | folder, pattern = rs |
| 410 | if len(pattern) == 0: |
| 411 | params.current_folder = folder.uid |
| 412 | else: |
| 413 | raise CommandError('cd', 'Folder {0} not found'.format(folder_name)) |
| 414 | |
| 415 | |
| 416 | class FolderTreeCommand(Command): |