diff src/luan/Luan.java @ 1424:9ab267b9427c

better load_file()
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 22 Nov 2019 22:58:39 -0700
parents 27efb1fcbcb5
children d7644b21b128
line wrap: on
line diff
--- a/src/luan/Luan.java	Tue Nov 19 17:42:11 2019 -0700
+++ b/src/luan/Luan.java	Fri Nov 22 22:58:39 2019 -0700
@@ -1,6 +1,7 @@
 package luan;
 
-import java.lang.reflect.Array;
+import java.lang.reflect.Array;
+import java.io.IOException;
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Map;
@@ -11,9 +12,9 @@
 import java.util.Set;
 import goodjava.logging.Logger;
 import goodjava.logging.LoggerFactory;
-import luan.modules.BasicLuan;
 import luan.modules.JavaLuan;
 import luan.modules.PackageLuan;
+import luan.modules.IoLuan;
 import luan.modules.logging.LuanLogger;
 import luan.impl.LuanCompiler;
 
@@ -171,15 +172,22 @@
 	// static
 
 	public static void main(String[] args) throws LuanException {
-		doFile( "classpath:luan/cmd_line.luan", args );
-	}
-
-	public static void doFile(String uri,String... args) throws LuanException {
-		Luan luan = new Luan();
-		LuanFunction fn = (LuanFunction)BasicLuan.load_file(luan,uri);
+		Luan luan = new Luan();
+		LuanFunction fn = loadClasspath(luan,"luan/cmd_line.luan");
 		fn.call((Object[])args);
 	}
-
+
+	public static LuanFunction loadClasspath(Luan luan,String classpath)
+		throws LuanException
+	{
+		try {
+			String src = IoLuan.classpath(luan,classpath).read_text();
+			return luan.load(src,"classpath:"+classpath);
+		} catch(IOException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
 	public static Object first(Object obj) {
 		if( !(obj instanceof Object[]) )
 			return obj;