#include #include #include #include #include struct option long_options[] = { {"help", 0, NULL, 'h'}, {"verbose", 0, NULL, 'v'}, {"output", 1, NULL, 'o'}, {"debug", 0, NULL, 'd'}, {0, 0, NULL, 0 } }; CODE_BEGINS void showhelp() { printm(M_BARE, "Usage:\n" "%s [options] [lua-script1] [lua-script2] ...\n" "\n" "Options:\n" " -v sets verbosity.\n" " -d sets debug mode.\n" " -o set output filename.\n" , argv[0]); } virtual int startup() throw (GeneralException) { char c; Lua * L = new Lua(); bool strip = true; char * output = "a.clua"; bool todo; while ((c = getopt_long(argc, argv, "Hhvo:d", long_options, NULL)) != EOF) { switch (c) { case 'h': case 'H': case '?': showhelp(); return 0; case 'v': verbosity = M_INFO; break; case 'o': output = strdup(optarg); break; case 'd': strip = false; break; } } /* Loading all the scripts */ while (optind < argc) { todo = true; L->load(&Input(argv[optind++]), false); } /* Doh... */ if (!todo) { showhelp(); return 0; } L->dump(&Output(output), strip); return 0; } CODE_ENDS