Thyme -- The classy build system.

Related tags

Command-line Thyme
Overview

Header

The Thyme build system.

Welcome to the Thyme build system! It chops, it dices, it links, it builds and Oh my! Do I see Lua? πŸ‘€

Quick introduction

The Thyme build system is a language-agnostic, non-batteries including build system made in Rust. It is deeply inspired from Makefiles, but rather than executing a series of shell commands, it uses the Lua programming language for configuration. Go nuts! Do anything! It's Lua.

Guide to writing Thymefiles

Thyme is powerful, but very simple to use. Targets contain Lua code, and a target may depend on other targets. The default target is named default. The syntax of defining a target is this

-- Psst, you can also have Lua-style comments outside of a target body as well. =)
target_name(dependencies here)
    -- Insert any Lua code here!
    print "Welcome to Thyme."
@end

For eg.

default(dependency_example)
    print "Dependencies are evaluated first, and in the order they are defined."
    print "Targets which do not have any dependencies can omit the parantheses."
@end

dependency_example
    print "This is from the dependency!"
@end

Using the CLI

Your Thymefile should be located in the current directory, then use thyme like this

thyme 

to run the default target. However, to run other targets, run

thyme <target_name>

instead.

Passing arguments to your target

The target body can access the arguments passed to the CLI through the args global.

-- Configuration.
example
    for i in args
        print(i)
    end
@end
# Command
thyme example one two three four
# Output
one 
two
three
four

License

Thyme is licensed under the MIT license. Please see the LICENSE file for more information.

You might also like...
Tool to build OSX package installers

πŸ“¦ Pak MacOS package installer builder What does pak do? Pak builds MacOS package installers from a project file. Since apple removed PackageBuilder f

A simple CLI to build VEXCode V5 Pro projects and download them to the V5 brain.

vexer A simple CLI to build VEXCode V5 Pro projects and download them to the V5 brain. (WIP) This currently is only tested on and only works on window

βš™οΈ A curated list of static analysis (SAST) tools for all programming languages, config files, build tools, and more.
βš™οΈ A curated list of static analysis (SAST) tools for all programming languages, config files, build tools, and more.

This repository lists static analysis tools for all programming languages, build tools, config files and more. The official website, analysis-tools.de

Helps cargo build and run apps for iOS

cargo-xcodebuild Helps cargo build and run apps for iOS. πŸ“¦ βš™οΈ 🍏 Setup You need to install Xcode (NOT just Command Line Tools!), xcodegen, cargo-xcod

Build light & secure cross-platform applications with a web-based UI
Build light & secure cross-platform applications with a web-based UI

Millennium Icon by XFaon. *Stats are from Tauri and may not be fully accurate. Millennium is a cross-platform webview framework written in Rust. With

Find and clean heavy build or cache directories.
Find and clean heavy build or cache directories.

ProjClean Find and clean heavy build or cache directories. ProjClean finds directories such as node_modules(node), target(rust), build(java) and their

Build some cyber security tools in Rust :crab: :rocket:

here we're trying to write some tools for cyber security in Rust because we don't have enough community for Rust in the cyber security field soo this

Help Skelly to find bones, combine them to build his body back
Help Skelly to find bones, combine them to build his body back

Bones Collector Help Skelly to find bones, combine them to build his body back! Game made for the bevy Jam#2. Play it here in your browser: itch.io! R

UniSBOM is a tool to build a software bill of materials on any platform with a unified data format.

UniSBOM is a tool to build a software bill of materials on any platform with a unified data format. Work in progress Support MacOS Uses system_profile

Owner
Combustible lemons!
null
A build system from the future πŸ––

warp is an friendly, fast, correct, and extensible build system built for polyglot monorepos that uses JavaScript for its configuration and is built i

warp.build 7 Apr 4, 2023
A CLI tool for CIs and build scripts, making file system based caching easy and correct (locking, eviction, etc.)

FS Dir Cache A CLI tool for CIs and build scripts, making file system based caching easy and correct (locking, eviction, etc.) When working on build s

Dawid CiΔ™ΕΌarkiewicz 5 Aug 29, 2023
BASIC build system and package manager.

Bargo BASIC build system and package manager. Bargo is a tool to make it simpler to program in the BASIC programming language. Early versions of BASIC

Vasco Costa 3 Apr 6, 2024
First project in rust which will be to make an accounts system & Leaderboard/Score system

rust-backend this is my first project in rust which will be to make a backend for compsci project it will include: Accounts, Player Achievements (if I

NaughtyDog6000 2 Jul 13, 2023
Quickly build cool CLI apps in Rust.

QuiCLI Quickly build cool CLI apps in Rust. Getting started Read the Getting Started guide! Thanks This is only possible because of all the awesome li

Pascal Hertleif 538 Dec 5, 2022
:large_orange_diamond: Build beautiful terminal tables with automatic content wrapping

Comfy-table Comfy-table tries to provide utility for building beautiful tables, while being easy to use. Features: Dynamic arrangement of content to a

Arne Beer 525 Jan 8, 2023
Build terminal user interfaces and dashboards using Rust

tui-rs tui-rs is a Rust library to build rich terminal user interfaces and dashboards. It is heavily inspired by the Javascript library blessed-contri

Florian Dehau 9.3k Jan 4, 2023
Build terminal dashboards using ascii/ansi art and javascript

blessed-contrib Build dashboards (or any other application) using ascii/ansi art and javascript. Friendly to terminals, ssh and developers.

Yaron Naveh 15k Jan 2, 2023
A tool crate to quickly build rust command line application.

Falsework A tool crate to quickly build rust command line application.

Leon Ding 103 Dec 12, 2022
A CLI command to parse kustomize build result and notify it to GitLab

ksnotify A CLI command to parse kustomize build result and notify it to GitLab Caution This repository is under development status. What ksnotify does

null 7 Jan 2, 2023