mirror of
https://github.com/Insality/druid.git
synced 2025-09-27 18:12:19 +02:00
Update druid editor scripts to run from dependency
This commit is contained in:
127
druid/editor_scripts/druid.editor_script
Normal file
127
druid/editor_scripts/druid.editor_script
Normal file
@@ -0,0 +1,127 @@
|
||||
--- @license MIT, Insality 2021
|
||||
--- @source https://github.com/Insality/druid
|
||||
|
||||
local M = {}
|
||||
|
||||
|
||||
local function ends_with(str, ending)
|
||||
return ending == "" or str:sub(-#ending) == ending
|
||||
end
|
||||
|
||||
|
||||
local function save_file_from_dependency(dependency_file_path, output_file_path)
|
||||
local content = editor.get(dependency_file_path, "text")
|
||||
local file, err = io.open(output_file_path, "w")
|
||||
if err then
|
||||
print("Error:", err)
|
||||
return false
|
||||
end
|
||||
file:write(content)
|
||||
file:close()
|
||||
print("Write file at", output_file_path)
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
function M.get_commands()
|
||||
return {
|
||||
{
|
||||
label = "Print gui scheme",
|
||||
|
||||
locations = { "Outline" },
|
||||
|
||||
query = {
|
||||
selection = {type = "outline", cardinality = "many"}
|
||||
},
|
||||
|
||||
active = function(opts)
|
||||
return true
|
||||
end,
|
||||
|
||||
run = function(opts)
|
||||
print("local SCHEME = {")
|
||||
|
||||
for i = 1, #opts.selection do
|
||||
local file = opts.selection[i]
|
||||
if editor.can_get(file, "id") then
|
||||
local id = editor.get(file, "id")
|
||||
print("\t" .. string.upper(id) .. " = \"" .. id .. "\",")
|
||||
end
|
||||
end
|
||||
|
||||
print("}")
|
||||
print("")
|
||||
end
|
||||
},
|
||||
|
||||
{
|
||||
label = "Assign layers",
|
||||
|
||||
locations = {"Edit"},
|
||||
|
||||
query = {
|
||||
selection = {type = "resource", cardinality = "one"}
|
||||
},
|
||||
|
||||
active = function(opts)
|
||||
local path = editor.get(opts.selection, "path")
|
||||
return ends_with(path, ".gui")
|
||||
end,
|
||||
|
||||
run = function(opts)
|
||||
local file = opts.selection
|
||||
print("Run script for", editor.get(file, "path"))
|
||||
save_file_from_dependency('/druid/editor_scripts/run_python_script_on_gui.sh', "./build/run_python_script_on_gui.sh")
|
||||
save_file_from_dependency('/druid/editor_scripts/setup_layers.py', "./build/setup_layers.py")
|
||||
return {
|
||||
{
|
||||
action = "shell",
|
||||
command = {
|
||||
"bash",
|
||||
"./build/run_python_script_on_gui.sh",
|
||||
"./build/setup_layers.py",
|
||||
"." .. editor.get(file, "path")
|
||||
}
|
||||
}
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
{
|
||||
label = "Create Druid Component",
|
||||
|
||||
locations = {"Edit"},
|
||||
|
||||
query = {
|
||||
selection = {type = "resource", cardinality = "one"}
|
||||
},
|
||||
|
||||
active = function(opts)
|
||||
local path = editor.get(opts.selection, "path")
|
||||
return ends_with(path, ".gui")
|
||||
end,
|
||||
|
||||
run = function(opts)
|
||||
local file = opts.selection
|
||||
print("Run script for", editor.get(file, "path"))
|
||||
save_file_from_dependency('/druid/editor_scripts/run_python_script_on_gui.sh', "./build/run_python_script_on_gui.sh")
|
||||
save_file_from_dependency('/druid/editor_scripts/create_druid_component.py', "./build/create_druid_component.py")
|
||||
save_file_from_dependency('/druid/editor_scripts/component.lua_template', "./build/component.lua_template")
|
||||
return {
|
||||
{
|
||||
action = "shell",
|
||||
command = {
|
||||
"bash",
|
||||
"./build/run_python_script_on_gui.sh",
|
||||
"./build/create_druid_component.py",
|
||||
"." .. editor.get(file, "path")
|
||||
}
|
||||
}
|
||||
}
|
||||
end
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
return M
|
Reference in New Issue
Block a user