about summary refs log tree commit diff stats
path: root/code/environment.py
diff options
context:
space:
mode:
Diffstat (limited to 'code/environment.py')
-rw-r--r--code/environment.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/code/environment.py b/code/environment.py
index d0ff5763..515fc8c6 100644
--- a/code/environment.py
+++ b/code/environment.py
@@ -1,3 +1,5 @@
+import directory
+
 class Vector():
 	def __init__(self, x, y):
 		self.x = x
@@ -6,11 +8,31 @@ class Vector():
 class Environment():
 	# A collection of data which is relevant for more than
 	# one class.
-	def __init__(self):
+	def __init__(self, opt):
+		self.opt = opt
 		self.path = None
+		self.pathway = ()
 		self.directories = {}
 		self.pwd = None # current directory
 		self.cf = None # current file
 		self.keybuffer = ''
 		self.copy = None
 		self.termsize = Vector(80, 24)
+	
+	def at_level(self, level):
+		if level <= 0:
+			try:
+				return self.pathway[level - 1]
+			except IndexError:
+				return None
+		else:
+			return self.cf
+
+	def get_directory(self, path):
+		import os
+		path = os.path.abspath(path)
+		try:
+			return self.directories[path]
+		except KeyError:
+			self.directories[path] = directory.Directory(path)
+			return self.directories[path]