= compilescript(1) :doctype: manpage :Author: tastytea :Email: tastytea@tastytea.de :Date: 2019-10-10 :Revision: 0.0.0 :man source: compilescript :man version: {revision} :man manual: General Commands Manual == NAME compilescript - Execute source 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: -o . == 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_. *--compiler* _command_:: Override compiler command. Note that *--compiler*=_command_ does NOT work. *--version*:: Print version, copyright and license. == EXAMPLES === Example script [source,cpp] ---- #!/usr/bin/env compilescript //compilescript: -Wall -pedantic -Wextra #include using std::cout; int main(int argc, char *argv[]) { cout << "Hello world!\n"; cout << argv[1] << '\n'; } ---- === Example config [source,conf] ---- 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`. == REPORTING BUGS Bugtracker: https://schlomp.space/tastytea/compilescript/issues E-mail: tastytea@tastytea.de