Write function for relative loading
[jackhill/mal.git] / gst / step6_file.st
index 758cc68..93b475e 100644 (file)
@@ -1,9 +1,20 @@
-FileStream fileIn: 'readline.st'.
-FileStream fileIn: 'reader.st'.
-FileStream fileIn: 'printer.st'.
-FileStream fileIn: 'env.st'.
-FileStream fileIn: 'func.st'.
-FileStream fileIn: 'core.st'.
+String extend [
+    String >> loadRelative [
+        | scriptPath scriptDirectory |
+        scriptPath := ContextPart thisContext currentFileName.
+        scriptDirectory := FilePath stripFileNameFor: scriptPath.
+        FileStream fileIn: (FilePath append: self to: scriptDirectory)
+    ]
+]
+
+'readline.st' loadRelative.
+'util.st' loadRelative.
+'types.st' loadRelative.
+'reader.st' loadRelative.
+'printer.st' loadRelative.
+'env.st' loadRelative.
+'func.st' loadRelative.
+'core.st' loadRelative.
 
 Object subclass: MAL [
     MAL class >> READ: input [