aboutsummaryrefslogtreecommitdiff

runfile (rfile)

a suckless and minimal, POSIX C99 alternative to Makefile/justfile!


install rf

you can either install the AUR package rf with your favourite AUR helper

or build rfile manually with gcc or any other POSIX C99 compiler


extra compile options

you can enable the following flags to enable extra feautures for rf:

using gcc you can do gcc -D FLAG_NAME ...

  • RF_EXTRAS: enables all EXTRA_* features
  • RF_EXTRA_MORE_COMMENTS: enables // and -- comments for rfiles
  • RF_HIDDEN_CMD: hides the $ cmd for commands

rfile syntax & features

  • # -> ignore line (comment)

variables

the variable system in rfiles is very minimal:

  • every variable is a string
  • when accessed, rf text-substitutes the variable with its content

example:

@cc=gcc
@inp=rf.c
@out=rf
@opts=-Wall -Wextra -pedantic -std=c99

@cc @inp -o @out @opts
# becomes 'gcc rf.c -o rf -Wall -Wextra -pedantic -std=c99'

rfile command prefix (@)

  • @:! [msg] -> print/log with box/banner
  • @: [msg] -> print/log
  • @var=cmd -> create variable var
  • @var -> access variable var

command sections

example syntax:

section {
    @: hello!
}

every other line is treated as a command and will run normally.

if no section is specified when calling rf, only commands in global scope will run.


usage

  1. create an rfile.
  2. run rf [section name] :)