Skip to content

DarkWiiPlayer/spooder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spooder 88w88

A very basic task runner written in Lua

Features

  • Modular
  • Runs tasks
  • Understands dependencies
  • Simple

Goals:

Spooder aims to be:

  • Usable
  • Hackable
  • Free of clutter

Taskfiles

Taskfiles are simple Lua modules that define tasks using the spooder.task function.

local spooder = require('spooder')
local task = spooder.task

-- task __index returns a task constructor
task.make_dir {
	description = "Creates a new directory";
	"mkdir directory"
}

-- task __call takes a string and also returns a task constructor
task "complex_stuff" {
	description = "Does some advanced stuff";
	if os.getenv("THE_STARS_ALIGn") == "yes" then
		spooder.helper.run("echo yes.")
	end
}

Initialisation & Cleanup

The spooder executable will look for the SPOODER_INIT and SPOODER_CLEANUP variables and run their contents as shell scripts before and after running.

These variables can be used, for example, to compile task files written in moonscript and delete the resulting Lua files afterwards.

For example, you can export the following environment variables

export SPOODER_INIT="yue tasks"
export SPOODER_CLEANUP="rm tasks.lua"

and write your tasks in Yuescript instead of plain Lua.

Releases

No releases published

Languages