Execute source files from compiled languages as scripts.
This repository has been archived on 2019-10-11. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
tastytea 6cd9ff8083
the build was successful Details
Abort on compilation error.
2019-01-01 09:29:16 +01:00
src Abort on compilation error. 2019-01-01 09:29:16 +01:00
xdgcfg@e22f82fc6f Simple files (without flags) work. 2018-12-29 05:15:49 +01:00
.drone.yml CI: Added clang 3 2018-12-29 06:28:04 +01:00
.gitignore Initial commit. 2018-12-28 13:56:34 +01:00
.gitmodules Initial commit. 2018-12-28 13:56:34 +01:00
CMakeLists.txt Abort on compilation error. 2019-01-01 09:29:16 +01:00
LICENSE Initial commit. 2018-12-28 13:56:34 +01:00
README.md Enhanced documentation. 2019-01-01 09:11:14 +01:00

README.md

compilescript allows you to execute files from compiled languages as scripts. By default it uses g++.

It compiles the source file, stores the binary in ${XDG_CACHE_HOME}/compilescript/ and executes it. If the binary in cache is newer than the source file, the compilation is skipped.

Usage

Use #!/usr/bin/env compilescript as shebang and write the compiler arguments in the second line with the prefix: //compilescript:.

You can delete old cache files with --cleanup.

Example

#!/usr/bin/env compilescript
//compilescript: -Wall -pedantic -Wextra

#include <iostream>

using std::cout;

int main(int argc, char *argv[])
{
    cout << "Hello world!\n";
    cout << argv[1] << '\n';
}

Configuration

The configuration file is in ${XDG_CONFIG_HOME}/compilescript.cfg. It will be generated on first run.

Example config

compiler = "g++";
clean_after_hours = 720;
cache_dir = "/home/user/.cache/compilescript";

Install

Gentoo

Gentoo ebuilds are available via my repository.

From source

Dependencies

Get sourcecode

Download the current release and copy xdgcfg into xdgcfg/.

If you clone from git, be sure to git submodule init and git submodule update afterwards. See the [submodules article in the git book] (https://git-scm.com/book/en/v2/Git-Tools-Submodules#_cloning_submodules) for further info.

Compile

mkdir build
cd build
cmake ..
make
make install

Contributing

Contributions are always welcome. You can submit them as pull requests or via email to tastytea@tastytea.de.

Copyright © 2018 tastytea <tastytea@tastytea.de>.
License GPLv3: GNU GPL version 3 <https://www.gnu.org/licenses/gpl-3.0.html>.
This program comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.