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 c0793664f9
A bit of refactoring
2018-12-31 13:58:23 +01:00
src A bit of refactoring 2018-12-31 13:58:23 +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 Added possibility to clean up cache_dir. 2018-12-30 11:46:29 +01:00
LICENSE Initial commit. 2018-12-28 13:56:34 +01:00
README.md Clarified compiler arguments line number. 2018-12-31 13:50:07 +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. You can delete old cache files with --cleanup.

Usage

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

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.

Example config

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

Install

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.