From 51084a2959951aefd416bc3f2f6cd9952616fd16 Mon Sep 17 00:00:00 2001 From: Benoit Giannangeli Date: Fri, 28 Apr 2017 14:56:04 +0200 Subject: os.tmpname --- src/loslib.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src') diff --git a/src/loslib.js b/src/loslib.js index a715aec..8bf38d9 100644 --- a/src/loslib.js +++ b/src/loslib.js @@ -83,6 +83,36 @@ if (process && process.exit) { syslib.exit = os_exit; } + +// Only with Node +if (typeof require === "function") { + + let fs = false; + let tmp = false; + try { + fs = require('fs'); + tmp = require('tmp'); + } catch (e) {} + + if (fs && tmp) { + // TODO: on POSIX system, should create the file + const lua_tmpname = function() { + return tmp.tmpNameSync(); + }; + + const os_tmpname = function(L) { + let name = lua_tmpname(); + if (!name) + return lauxlib.luaL_error(L, lua.to_luastring("unable to generate a unique filename")); + lua.lua_pushstring(L, lua.to_luastring(name)); + return 1; + }; + + syslib.tmpname = os_tmpname; + } + +} + const luaopen_os = function(L) { lauxlib.luaL_newlib(L, syslib); return 1; -- cgit v1.2.3-70-g09d2