Civstack

Let's work together to create and refine a public domain tech stack which enables learning through simple but powerful software. This project is for students, teachers, professionals, and creators to use for learning and to supercharge their personal development stack.

The Civstack is a complete and well documented software development tech stack built from scratch. It encompases an editor, version control>, build system and package manager and documentation language. Soon it will have educational games and tutorials, a custom assembly language, and its own implementation of lua, which all of the high-level software is implemented in.

Installation

First, install Lua5.4 with apt-get install lua, brew lua,
pkgin install
lua5.4
or however you normally install software, or follow directions at https://lua.org/start.html. You will also need a C compiler.
Then run the following (or equivalent). Make certain to follow the directions for PATH variables.
lua bootstrap.lua init         # create .civconfig.lua
lua bootstrap.lua boot-test    # run tests for your system

# !-- IMPORTANT: run, then do what it says for PATH vars --!
lua bootstrap.lua install civ:cmd/civ  # install civ

source ~/.bashrc               # load new PATH vars
civ test civ:.#                # test all targets
civ install civ:#full          # install main civ software

By default, civ software will be put in ~/.local/civ/. You can modify this by changing .civconfig.

Commands

Commands installed by civ install civ:#full. You can view their command documentation using luadoc <cmd>.

Core Libraries

The following are the "core libraries" and represent the "batteries included" of Civlua. They maintain minimalism but enable ergonomic programming, powerful scripting, asynchronous file access and other goodies.

LICENSE

All software, tests, documentation, notes and anything else in this repository is released into the public domain (LICENSE) unless otherwise noted in the given source file.
If you find any of this software helpful or copy large parts of it, please give us a a shoutout in your own projects and let us know by opening an issue. Please note that this is not required but is highly appreciated, thanks!