import os
from ranger.shared import FileManagerAware
# -------------------------------- helper classes
class parse(object):
def __init__(self, line):
self.line = line
self.chunks = line.split()
try:
self.firstpart = line[:line.rindex(' ') + 1]
except ValueError:
self.firstpart = ''
def __add__(self, newpart):
return self.firstpart + newpart
class Command(FileManagerAware):
name = None
def __init__(self, line):
self.line = line
def execute(self):
pass
def tab(self):
pass
def _no_change(self):
return (self.line for i in range(100))
# -------------------------------- definitions
class cd(Command):
def execute(self):
line = parse(self.line)
try:
destination = line.chunks[1]
except IndexError:
destination = '~'
if destination == '-':
self.fm.enter_bookmark('`')
else:
self.fm.enter_dir(destination)
def tab(self):
from os.path import dirname, basename, expanduser, join, isdir
line = parse(self.line)
pwd = self.fm.env.pwd.path
try:
rel_dest =