diff --git a/Shell/main.cpp b/Shell/main.cpp index 57acffdd6e..19bdf37284 100644 --- a/Shell/main.cpp +++ b/Shell/main.cpp @@ -360,6 +360,9 @@ static int run_command(const String& cmd) if (cmd.is_empty()) return 0; + if (cmd.starts_with("#")) + return 0; + auto commands = Parser(cmd).parse(); #ifdef SH_DEBUG @@ -642,6 +645,21 @@ int main(int argc, char** argv) return 0; } + if (argc == 2 && argv[1][0] != '-') { + CFile file(argv[1]); + if (!file.open(CIODevice::ReadOnly)) { + fprintf(stderr, "Failed to open %s: %s\n", file.filename().characters(), file.error_string()); + return 1; + } + for (;;) { + auto line = file.read_line(4096); + if (line.is_null()) + break; + run_command(String::copy(line, Chomp)); + } + return 0; + } + { auto* cwd = getcwd(nullptr, 0); g.cwd = cwd;