package org.jerlang.kernel.file; import jnr.posix.POSIX; import jnr.posix.POSIXFactory; import org.jerlang.erts.erlang.Error; import org.jerlang.type.Atom; import org.jerlang.type.Integer; import org.jerlang.type.List; import org.jerlang.type.Str; import org.jerlang.type.Term; import org.jerlang.type.Tuple; public class FileDelete { private static final Atom error = Atom.of("error"); private static final Atom ok = Atom.of("ok"); private static final POSIX posix; static { posix = POSIXFactory.getPOSIX(); } public static Term dispatch(List params) { switch (params.length()) { case 1: return delete_1(params.head().toStr()); default: throw Error.badarg; } } /** * http://www.erlang.org/doc/man/file.html#delete-1 */ public static Term delete_1(Str filename) { int result = posix.unlink(filename.string()); switch (result) { case 0: return ok; default: return Tuple.of(error, Integer.of(result)); } } }