2014-09-14 08:36:58 +02:00

41 lines
1.1 KiB
Lua

-- install.lua - Express file copying in unit form.
module(..., package.seeall)
local nodegen = require "tundra.nodegen"
local files = require "tundra.syntax.files"
local path = require "tundra.path"
local util = require "tundra.util"
local depgraph = require "tundra.depgraph"
local _mt = nodegen.create_eval_subclass {}
local blueprint = {
Sources = { Type = "source_list", Required = true },
TargetDir = { Type = "string", Required = true },
}
function _mt:create_dag(env, data, deps)
local my_pass = data.Pass
local sources = data.Sources
local target_dir = data.TargetDir
local copies = {}
-- all the copy operations will depend on all the incoming deps
for _, src in util.nil_ipairs(sources) do
local base_fn = select(2, path.split(src))
local target = target_dir .. '/' .. base_fn
copies[#copies + 1] = files.copy_file(env, src, target, my_pass, deps)
end
return depgraph.make_node {
Env = env,
Label = "Install group for " .. decl.Name,
Pass = my_pass,
Dependencies = copies
}
end
nodegen.add_evaluator("Install", _mt, blueprint)