a scripting language created for file management and processing
Find a file
ignis621 5e48f098d2 set_variable overflow bugfix
set_variable, if one exists, overwrites the variable ONLY instead of overwriting it and creating another one. this fixes loop variable shadowing overloading environment with new never to be found vars
2026-09-07 08:18:47 +02:00
test_scripts fix stupid bug that would lead to infinite recursion. 2026-09-06 22:33:15 +02:00
.gitignore Makefile for builds, better escapes for characters, ascii art in help screen. minor fixes. 2026-09-03 20:56:40 +02:00
ast.c custom function declaration incl parameters 2026-09-06 22:13:41 +02:00
ast.h custom function declaration incl parameters 2026-09-06 22:13:41 +02:00
build.c add preprocessor for #includes, cleanup 2026-09-05 00:21:29 +02:00
build.h change magic string to make more sense 2026-09-05 00:02:20 +02:00
builtins.c fix stupid bug that would lead to infinite recursion. 2026-09-06 22:33:15 +02:00
builtins.h add for, while loops. allow variable reassignment. 2026-09-06 20:03:33 +02:00
eval.c set_variable overflow bugfix 2026-09-07 08:18:47 +02:00
eval.h custom function declaration incl parameters 2026-09-06 22:13:41 +02:00
lexer.c custom function declaration incl parameters 2026-09-06 22:13:41 +02:00
lexer.h add numbers (float and int) 2026-09-04 18:13:01 +02:00
LICENSE.md abstract syntax tree, license 2026-09-02 20:17:37 +02:00
logger.c Makefile for builds, better escapes for characters, ascii art in help screen. minor fixes. 2026-09-03 20:56:40 +02:00
logger.h Makefile for builds, better escapes for characters, ascii art in help screen. minor fixes. 2026-09-03 20:56:40 +02:00
main.c simplify makefile, fix --version 2026-09-05 13:09:10 +02:00
Makefile simplify makefile, fix --version 2026-09-05 13:09:10 +02:00
parser.c custom function declaration incl parameters 2026-09-06 22:13:41 +02:00
parser.h custom function declaration incl parameters 2026-09-06 22:13:41 +02:00
preprocessor.c add preprocessor for #includes, cleanup 2026-09-05 00:21:29 +02:00
preprocessor.h add preprocessor for #includes, cleanup 2026-09-05 00:21:29 +02:00
README.md get_parent() basic implementation 2026-09-03 21:33:27 +02:00

ignish

ignish (/ˈiɡ.ɲiʂ/) is a minimal domain-specific scripting language for file management and processing.

it tries to separate logic from shell execution. you write all of your logic, checks, etc in ignish, and then build and execute the shell command.

Note

this project is in it's very early stages! i don't even know if i'll ever finish it. check out .ish scripts other than test99.ish for what's currently working.

// this is what i want to have in the 1.0 release

var path = eval("pwd") // find current path
var my_dir = dir(path) // get a Directory object

// define a function with an argument
func process_directory(dir) {
    var items = dir.get_elements() // get all items in this directory

    for (element in items) {
        if (element.is_file()) {
            // if its a file, process it with ffmpeg and append -h265
            var path = element.path
            var name = element.name
            var basename = element.basename

            var output = "${my_dir}/${basename}-h265.mp4"
            print("currently processing: ${name}")

            eval("ffmpeg -i ${path} -vcodec libx265 -b:v 500k -acodec libopus ${output}")
        } else {
            // it is a directory, so just pass it back into the function
            process_directory(element)
        }
    }
}

// start the loop
process_directory(my_dir)