Improved error reporting and fully implemented the shopt command

This commit is contained in:
2025-03-26 23:41:19 -04:00
parent 30cd3c0b73
commit 1854578d49
19 changed files with 776 additions and 111 deletions

View File

@@ -1,6 +1,6 @@
use std::sync::Arc;
pub use super::*;
use super::*;
use crate::libsh::error::{
Note, ShErr, ShErrKind
};

View File

@@ -2,8 +2,9 @@
source: src/tests/error.rs
expression: err_fmt
---
-> [1;1] - Parse Error
Parse Error - Expected 'esac' after case block
-> [1;1]
 |
1 | case foo in foo) bar;; bar) foo;;
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 |
- Expected 'esac' after case block

View File

@@ -2,8 +2,9 @@
source: src/tests/error.rs
expression: err_fmt
---
-> [1;1] - Parse Error
Parse Error - Expected 'in' after case variable name
-> [1;1]
 |
1 | case foo foo) bar;; bar) foo;; esac
 | ^^^^^^^^^^^^^^^^^^^^
 |
- Expected 'in' after case variable name

View File

@@ -2,8 +2,8 @@
source: src/tests/error.rs
expression: err_fmt
---
-> [1;1] - Command not found: foo
Command not found: foo -
-> [1;1]
 |
1 | foo
 |
-

View File

@@ -2,8 +2,9 @@
source: src/tests/error.rs
expression: err_fmt
---
-> [1;1] - Parse Error
Parse Error - Expected 'fi' after if statement
-> [1;1]
 |
1 | if foo; then bar;
 | ^^^^^^^^^^^^^^^^^
 |
- Expected 'fi' after if statement

View File

@@ -2,8 +2,9 @@
source: src/tests/error.rs
expression: err_fmt
---
-> [1;1] - Parse Error
Parse Error - Expected 'then' after 'if' condition
-> [1;1]
 |
1 | if foo; bar; fi
 | ^^^^^^^^^^^^^
 |
- Expected 'then' after 'if' condition

View File

@@ -2,8 +2,9 @@
source: src/tests/error.rs
expression: err_fmt
---
-> [1;1] - Parse Error
Parse Error - Expected 'do' after loop condition
-> [1;1]
 |
1 | while true; echo foo; done
 | ^^^^^^^^^^^^^^^^^^^^^^
 |
- Expected 'do' after loop condition

View File

@@ -2,8 +2,9 @@
source: src/tests/error.rs
expression: err_fmt
---
-> [1;1] - Parse Error
Parse Error - Expected 'done' after loop body
-> [1;1]
 |
1 | while true; do echo foo;
 | ^^^^^^^^^^^^^^^^^^^^^^^^
 |
- Expected 'done' after loop body