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 7c13f23d3c
the build was successful Details
Added Gentoo installation suggestion.
2019-01-01 09:05:31 +01:00
src Fail if config can't be read. 2018-12-31 14:00:39 +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 Fail if config can't be read. 2018-12-31 14:00:39 +01:00
LICENSE Initial commit. 2018-12-28 13:56:34 +01:00
README.md Added Gentoo installation suggestion. 2019-01-01 09:05:31 +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

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.