#include <ruby.h>

#include <tqstring.h>
#include <tqfileinfo.h>
#include <tdeinstance.h>
#include <tdestandarddirs.h>

int main(int argc, char **argv) {
    TDEInstance * instance = new TDEInstance("%{APPNAMELC}");
    TQString appdir = ::locate("data", "%{APPNAMELC}/main.rb", instance);
    delete instance;
    if (appdir.isNull()) {
        tqFatal("Error: Can't find \"%{APPNAMELC}/main.rb\"\n");
    }
    TQFileInfo program(appdir);
     
    char ** rubyargs = (char **) calloc(argc+4, sizeof(char *));
    rubyargs[0] = strdup(argv[0]);
    rubyargs[1] = strdup("-KU");
    rubyargs[2] = strdup(TQString("-C%1").arg(program.dirPath()).latin1());
    rubyargs[3] = strdup(TQString("-I%1").arg(program.dirPath()).latin1());
    rubyargs[4] = strdup(program.fileName().latin1());
    for (int i = 1; i < argc; i++) {
        rubyargs[i+4] = argv[i];
    }

    ruby_init();
    ruby_options(argc+4, rubyargs); 
    ruby_run();
}
