changeset 1497:f04bfbb08721

link_from
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 08 May 2020 16:54:30 -0600
parents 6c830be6be98
children 1b809d2fdf03
files conv.txt src/goodjava/io/IoUtils.java src/luan/modules/Boot.luan src/luan/modules/IoLuan.java
diffstat 4 files changed, 20 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
diff -r 6c830be6be98 -r f04bfbb08721 conv.txt
--- a/conv.txt	Fri May 08 10:46:13 2020 -0600
+++ b/conv.txt	Fri May 08 16:54:30 2020 -0600
@@ -1,3 +1,5 @@
+link_to
+
 json_compressed_string
 literal
 JsonToString
diff -r 6c830be6be98 -r f04bfbb08721 src/goodjava/io/IoUtils.java
--- a/src/goodjava/io/IoUtils.java	Fri May 08 10:46:13 2020 -0600
+++ b/src/goodjava/io/IoUtils.java	Fri May 08 16:54:30 2020 -0600
@@ -31,8 +31,12 @@
 		delete(file);
 	}
 
-	public static void link(File from,File to) throws IOException {
-		Files.createLink( to.toPath(), from.toPath() );
+	public static void link(File existing,File link) throws IOException {
+		Files.createLink( link.toPath(), existing.toPath() );
+	}
+
+	public static void symlink(File existing,File link) throws IOException {
+		Files.createSymbolicLink( link.toPath(), existing.toPath() );
 	}
 
 	public static void copyAll(InputStream in,OutputStream out)
diff -r 6c830be6be98 -r f04bfbb08721 src/luan/modules/Boot.luan
--- a/src/luan/modules/Boot.luan	Fri May 08 10:46:13 2020 -0600
+++ b/src/luan/modules/Boot.luan	Fri May 08 16:54:30 2020 -0600
@@ -177,8 +177,8 @@
 	this.set_last_modified = io.set_last_modified
 	this.length = io.file.length
 	this.rename_to = io.rename_to
-	this.link_to = io.link_to
-	this.symlink_to = io.symlink_to
+	this.link_from = io.link_from
+	this.symlink_from = io.symlink_from
 	this.is_symbolic_link = io.is_symbolic_link
 
 	function this.child(name)
diff -r 6c830be6be98 -r f04bfbb08721 src/luan/modules/IoLuan.java
--- a/src/luan/modules/IoLuan.java	Fri May 08 10:46:13 2020 -0600
+++ b/src/luan/modules/IoLuan.java	Fri May 08 16:54:30 2020 -0600
@@ -25,7 +25,6 @@
 import java.net.NetworkInterface;
 import java.net.MalformedURLException;
 import java.net.UnknownHostException;
-import java.nio.file.Files;
 import java.util.Enumeration;
 import java.util.Map;
 import javax.naming.NamingException;
@@ -464,18 +463,18 @@
 			IoUtils.move(file,dest);
 		}
 
-		public void link_to(Luan luan,Object destObj) throws LuanException, IOException {
-			File dest = objToFile(luan,destObj);
-			if( dest==null )
-				throw new LuanException( "bad argument #1 to 'link_to' (string or file table expected)" );
-			Files.createLink( file.toPath(), dest.toPath() );
+		public void link_from(Luan luan,Object linkObj) throws LuanException, IOException {
+			File link = objToFile(luan,linkObj);
+			if( link==null )
+				throw new LuanException( "bad argument #1 to 'link_from' (string or file table expected)" );
+			IoUtils.link(file,link);
 		}
 
-		public void symlink_to(Luan luan,Object destObj) throws LuanException, IOException {
-			File dest = objToFile(luan,destObj);
-			if( dest==null )
-				throw new LuanException( "bad argument #1 to 'symlink_to' (string or file table expected)" );
-			Files.createSymbolicLink( file.toPath(), dest.toPath() );
+		public void symlink_from(Luan luan,Object linkObj) throws LuanException, IOException {
+			File link = objToFile(luan,linkObj);
+			if( link==null )
+				throw new LuanException( "bad argument #1 to 'symlink_from' (string or file table expected)" );
+			IoUtils.symlink(file,link);
 		}
 
 		public LuanFile canonical(Luan luan) throws LuanException, IOException {