mirror of
https://github.com/Adorable-Catgirl/LuaComp.git
synced 2024-11-27 12:18:06 +11:00
120 lines
3.3 KiB
Markdown
120 lines
3.3 KiB
Markdown
# Building
|
|
|
|
## Luapreproc
|
|
```sh
|
|
git clone https://github.com/Adorable-Catgirl/LuaComp.git
|
|
cd LuaComp
|
|
luapreproc src/init.lua /tmp/luacomp.part
|
|
echo "#!/usr/bin/env lua5.3" | cat - /tmp/luacomp.part > ~/bin/luacomp
|
|
chmod +x ~/bin/luacomp
|
|
```
|
|
|
|
## LuaComp
|
|
```sh
|
|
git clone https://github.com/Adorable-Catgirl/LuaComp.git
|
|
cd LuaComp
|
|
luacomp -xlua5.3 -mluamin -O ~/bin/luacomp src/init.lua
|
|
chmod +x ~/bin/luacomp
|
|
```
|
|
|
|
## By hand
|
|
Ha, no.
|
|
|
|
# Usage
|
|
`luacomp -h` outputs:
|
|
```
|
|
Usage: /tmp/luacomp [-h] [-O <output>] [-m <minifier>]
|
|
[--generator-code] [--verbose] [--post-processors]
|
|
[--directives] [-v] <input> [-x [<executable>]]
|
|
|
|
LuaComp v1.2.0
|
|
A preprocessor+postprocessor written in Lua.
|
|
|
|
Arguments:
|
|
input Input file (- for STDIN)
|
|
|
|
Options:
|
|
-h, --help Show this help message and exit.
|
|
-O <output>, Output file. (- for STDOUT) (default: -)
|
|
--output <output>
|
|
-m <minifier>,
|
|
--minifier <minifier>
|
|
Sets the minifier (default: none)
|
|
-x [<executable>],
|
|
--executable [<executable>]
|
|
Makes the script an executable (default: current lua version)
|
|
--generator-code Outputs only the code from the generator.
|
|
--verbose Verbose output. (Debugging)
|
|
--post-processors Lists postprocessors
|
|
--directives Lists directives
|
|
-v, --version Prints the version and exits
|
|
```
|
|
# Directives
|
|
LuaComp currently ships with four built-in directives. More directives can be installed at `/usr/share/luacomp/directives` and `~/.local/share/luacomp/directives`.
|
|
|
|
## include
|
|
Usage: `--#include "path"`
|
|
Include tells the preprocessor to include the file specified. The file included will also be preprocessed.
|
|
|
|
## define
|
|
Usage `--#define "var" "value"`
|
|
Defines the env var for this session.
|
|
|
|
## error
|
|
Usage `--#error "text"`
|
|
Throws an error and stops the preprocessor.
|
|
|
|
## loadmod
|
|
**Note**: Depreciated, use the directive dirs.
|
|
Usage `--#loadmod "lua_file.lua"`
|
|
Loads a directive module. Don't use this. I just don't want to have to bump the major version number.
|
|
|
|
# Postprocessors
|
|
LuaComp currently ships with built-in support for three postprocessors. More can be installed at `/usr/share/luacomp/postproc` and `~/.local/share/luacomp/postproc`
|
|
|
|
## luamin
|
|
Language: Lua 5.1 to 5.3
|
|
Minifies Lua.
|
|
|
|
## uglify
|
|
Language: JavaScript
|
|
Minifies JS. Options are `--compress --mangle`.
|
|
|
|
## bython(2)
|
|
Language: Bython (Python 3.x and 2.x)
|
|
Turns Bython into Python.
|
|
|
|
# Syntax
|
|
The syntax was made for Lua, but it works well enough for some other languages.
|
|
|
|
## Directives
|
|
Syntax: `--#directive "arguments"`
|
|
|
|
## Lua code
|
|
Syntax: `@[[ code ]]`
|
|
Note that this can be used for macros.
|
|
See examples/macro.lua.
|
|
|
|
## Lua variable
|
|
Syntax: `@[{ variable }]`
|
|
Puts the value of the variable in the code
|
|
|
|
## Quoted shell variables
|
|
Syntax: `$(var)`
|
|
Puts the value of the variable in the code, quoted.
|
|
|
|
## Unquoted shell variables
|
|
Syntax: `$[{var}]`
|
|
Puts the value of the variable in the code, not quoted.
|
|
|
|
## Shell output
|
|
Syntax: `$[[code]]`
|
|
Puts the stdout of the script in the code. Note that you can't set variables from the shell script.
|
|
|
|
# Debugging
|
|
|
|
## Generator code
|
|
To output the code the generator executes, add the `--generator-code` flag.
|
|
|
|
## Debug messages
|
|
To output debug messages, add the `--verbose` flag. |