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.
compilescript/compilescript.1.adoc

2.0 KiB

compilescript(1) Manual Page

NAME

compilescript - allows you to execute files from compiled languages as scripts.

SYNOPSIS

compilescript [file|--cleanup|--version] [arguments]

DESCRIPTION

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.

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

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

The compiler invocation looks like this: <configured compiler> <source file> <compiler arguments> -o <binary>.

OPTIONS

--cleanup

Delete old cache files. You can configure the timespan after which a file is considered old with the config option clean_after_hours.

--version

Print version, copyright and license.

EXAMPLES

Example script

#!/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';
}

Example config

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

FILES

  • Configuration file: ${XDG_CONFIG_HOME}/compilescript.cfg

  • Cache: ${XDG_CACHE_HOME}/compilescript/

${XDG_CONFIG_HOME} is usually ~/.config and ${XDG_CACHE_HOME} is usually ~/.cache.