|
@@ -360,6 +360,9 @@ static int run_command(const String& cmd)
|
|
if (cmd.is_empty())
|
|
if (cmd.is_empty())
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+ if (cmd.starts_with("#"))
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
auto commands = Parser(cmd).parse();
|
|
auto commands = Parser(cmd).parse();
|
|
|
|
|
|
#ifdef SH_DEBUG
|
|
#ifdef SH_DEBUG
|
|
@@ -642,6 +645,21 @@ int main(int argc, char** argv)
|
|
return 0;
|
|
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);
|
|
auto* cwd = getcwd(nullptr, 0);
|
|
g.cwd = cwd;
|
|
g.cwd = cwd;
|