diff --git a/lua-npge-dev-1.rockspec b/lua-npge-dev-1.rockspec index 29014b5..bc2d850 100644 --- a/lua-npge-dev-1.rockspec +++ b/lua-npge-dev-1.rockspec @@ -67,7 +67,9 @@ build = { ['npge.util.trim'] = 'src/npge/util/trim.lua', ['npge.util.unique'] = 'src/npge/util/unique.lua', ['npge.util.unpack'] = 'src/npge/util/unpack.lua', + ['npge.util.execute'] = 'src/npge/util/execute.lua', ['npge.util.writeIt'] = 'src/npge/util/writeIt.lua', + ['npge.util.writeFile'] = 'src/npge/util/writeFile.lua', ['npge.util.threads'] = 'src/npge/util/threads.lua', ['npge.util.mapItems'] = 'src/npge/util/mapItems.lua', ['npge.util.textToIt'] = 'src/npge/util/textToIt.lua', diff --git a/spec/util/execute_spec.lua b/spec/util/execute_spec.lua new file mode 100644 index 0000000..a7e8f2c --- /dev/null +++ b/spec/util/execute_spec.lua @@ -0,0 +1,17 @@ +-- lua-npge, Nucleotide PanGenome explorer (Lua module) +-- Copyright (C) 2014-2016 Boris Nagaev +-- See the LICENSE file for terms of use. + +describe("npge.util.execute", function() + it("executes a program", function() + local tmpName = require 'npge.util.tmpName' + local tmp_fname = tmpName() + os.remove(tmp_fname) + local nullName = require 'npge.util.nullName' + local cmd = ('mkdir %s 2> %s'):format(tmp_fname, nullName()) + local execute = require 'npge.util.execute' + assert.truthy(execute(cmd)) + assert.falsy(execute(cmd)) + os.remove(tmp_fname) + end) +end) diff --git a/spec/util/writeFile_spec.lua b/spec/util/writeFile_spec.lua new file mode 100644 index 0000000..0b6f770 --- /dev/null +++ b/spec/util/writeFile_spec.lua @@ -0,0 +1,15 @@ +-- lua-npge, Nucleotide PanGenome explorer (Lua module) +-- Copyright (C) 2014-2016 Boris Nagaev +-- See the LICENSE file for terms of use. + +describe("npge.util.writeFile", function() + it("writes string to file", function() + local writeFile = require 'npge.util.writeFile' + local tmpName = require 'npge.util.tmpName' + local tmp_fname = tmpName() + writeFile(tmp_fname, "42") + local readFile = require 'npge.util.readFile' + assert.equal(readFile(tmp_fname), "42") + os.remove(tmp_fname) + end) +end) diff --git a/src/npge/util/execute.lua b/src/npge/util/execute.lua new file mode 100644 index 0000000..246f93a --- /dev/null +++ b/src/npge/util/execute.lua @@ -0,0 +1,12 @@ +-- lua-npge, Nucleotide PanGenome explorer (Lua module) +-- Copyright (C) 2014-2016 Boris Nagaev +-- See the LICENSE file for terms of use. + +return function(cmd) + if _VERSION == 'Lua 5.1' then + return os.execute(cmd) == 0 + else + -- Lua >= 5.2 + return os.execute(cmd) + end +end diff --git a/src/npge/util/init.lua b/src/npge/util/init.lua index d8997b6..3d6f66f 100644 --- a/src/npge/util/init.lua +++ b/src/npge/util/init.lua @@ -5,6 +5,7 @@ return { split = require 'npge.util.split', unpack = require 'npge.util.unpack', + execute = require 'npge.util.execute', loadstring = require 'npge.util.loadstring', arraysEqual = require 'npge.util.arraysEqual', arraysLess = require 'npge.util.arraysLess', @@ -19,6 +20,7 @@ return { endsWith = require 'npge.util.endsWith', trim = require 'npge.util.trim', writeIt = require 'npge.util.writeIt', + writeFile = require 'npge.util.writeFile', fileExists = require 'npge.util.fileExists', sandbox = require 'npge.util.sandbox', readFile = require 'npge.util.readFile', diff --git a/src/npge/util/writeFile.lua b/src/npge/util/writeFile.lua new file mode 100644 index 0000000..175fd0c --- /dev/null +++ b/src/npge/util/writeFile.lua @@ -0,0 +1,9 @@ +-- lua-npge, Nucleotide PanGenome explorer (Lua module) +-- Copyright (C) 2014-2016 Boris Nagaev +-- See the LICENSE file for terms of use. + +return function(fname, text) + local f = io.open(fname, 'w') + f:write(text) + f:close() +end