LINAC is not a compiler
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Joe 94b663c876
rebuild linac
7 months ago
config set log level to debug 10 months ago
src use lowercase project name when writing info and build files. fixes #10 7 months ago
.drone.yml [ci] update drone config 1 year ago
.gitignore track config 2 years ago
LICENSE Initial commit 2 years ago correct license link 9 months ago
linac rebuild linac 7 months ago add proper logging function 12 months ago bump version 7 months ago


License Latest Release Build Status


LINAC is intended to make writing and maintaining good shell scripts easier. Also see the project overview and roadmap.

Getting Started


LINAC is alpha software. It's current features work well enough, but there are likely to be bugs and failures in edge cases.

LINAC is built with LINAC! You can use this repo as an example project.

Download the latest version of LINAC from the releases page and mark it as executable: chmod +x linac. To start a project in your current directory use: ./linac init. LINAC will create some necessary project files and folders for you.

Source files should be placed in src. Splitting your project into multiple files will help make it more manageable. An easy method to use is to create a new source file for each function you write.

The path to each source file you wish to include in your project should be written in the build file. If your project is named 'MyProject', the build file will be

When you're ready to build your project, use ./linac build LINAC will output the result to the build folder by default.

If you wish to install LINAC globally, copy it to a location in your PATH, e.g. sudo cp -a linac /usr/local/sbin/. Doing this will allow you to invoke LINAC by simply typing linac in any directory instead of needing to type ./linac in the same directory as LINAC.

Contributing to LINAC

Contributions are welcome!


The name LINAC is a recursive acronym which stands for "LINAC is not a compiler".