Add symlink function

This commit is contained in:
Christopher Monsanto 2020-04-13 04:04:55 -04:00
parent 4ed5fd84e1
commit 241d82b135

View File

@ -4,24 +4,37 @@ tup.include("util/lua-ext.lua")
tup.include("util/tup-ext.lua")
tup.include("util/pokemon.lua")
function symlink(input, output)
-- The path must be relative from output, walk back to the root
local prefix = ""
for _ in output:gmatch("/") do
prefix = "../" .. prefix
end
tup.foreach_rule(
input,
"^ symlink %f -> %o^ ln -s " .. prefix .. "%f %o",
output
)
end
for file in iglob{"src/models/front/*", "src/models/front-cosmetic/*"} do
local output = toPSSpriteID(decodeBase(file)) .. "." .. tup.ext(file)
tup.rule(file, "ln -s ../../../%f %o", "build/ps/ani/" .. output)
symlink(file, "build/ps/ani/" .. output)
end
for file in iglob{"src/models/back/*", "src/models/back-cosmetic/*"} do
local output = toPSSpriteID(decodeBase(file)) .. "." .. tup.ext(file)
tup.rule(file, "ln -s ../../../%f %o", "build/ps/ani-back/" .. output)
symlink(file, "build/ps/ani-back/" .. output)
end
for file in iglob{"src/models/shiny/*", "src/models/shiny-cosmetic/*"} do
local output = toPSSpriteID(decodeBase(file)) .. "." .. tup.ext(file)
tup.rule(file, "ln -s ../../../%f %o", "build/ps/ani-shiny/" .. output)
symlink(file, "build/ps/ani-shiny/" .. output)
end
for file in iglob{"src/models/back-shiny/*", "src/models/back-shiny-cosmetic/*"} do
local output = toPSSpriteID(decodeBase(file)) .. "." .. tup.ext(file)
tup.rule(file, "ln -s ../../../%f %o", "build/ps/ani-back-shiny/" .. output)
symlink(file, "build/ps/ani-back-shiny/" .. output)
end
@ -43,7 +56,7 @@ end
for file in iglob{"src/models/front/*"} do
local base = toSmogonAlias(decodeBase(file))
tup.foreach_rule(file, "ln -s ../../../%f %o", "build/smogon/xy/" .. base .. ".%e")
symlink(file, "build/smogon/xy/" .. base .. ".%e")
fbsprite(file, "build/smogon/fbsprites/xy/" .. base .. ".png")
twittersprite(file, "build/smogon/twittersprites/xy/" .. base .. ".png")
end