aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-10 23:24:53 +0800
committer_ov4 <ov4@ov4.org>2026-10-10 23:24:53 +0800
commit273858455fce9b7667f423d28830b5e08d0d7548 (patch)
tree5efde5aba1c4479a2b694ce7ab00653110eda7e0 /README.md
parent8524f73c01500dd892e113e96de14945363a02d1 (diff)
update documentation
Diffstat (limited to 'README.md')
-rw-r--r--README.md38
1 files changed, 32 insertions, 6 deletions
diff --git a/README.md b/README.md
index e5f717f..87ce91a 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,54 @@
+<p align="center">
+ <img src="resource/icon.png" alt="Logo" width="120">
+</p>
+
# ccshell
-A complex (or simple?) shell implemented in C++ (some C codes will be replaced by C++ soon, but anyway C is still subset of C++)
+A complex (or simple?) shell implemented in C++ (some C codes (job control) will be replaced by C++ soon, but anyway C is still subset of C++)
-NO AI/Codex/Claude Code/Antigravity
+NO vibe coding / AI / Codex / Claude Code / Antigravity / Cursor / Kiro
Only the very traditional methods (stack overflow, man, cpp reference, etc.) are used
-Very simple and boring things (just job CRUD, really) are copied from CS:APP (I did that lab, so they're here), but will be refactored soon
+👉 I am just learning these stuff as doing this project, so if you find something stupid, please just open issue/PR 😭
+
+~~Very simple and boring things (just job CRUD, really) are copied from CS:APP (I did that lab, so they're here), but will be refactored soon~~ 👉 Job system will be rewritten, because CSAPP job model is not how sh/bash/zsh works, and then it will be in C++
+
+## Feature
-a VERY FANTASTIC PARSER is being done
+Support very complex syntax with a systematic language analysis system (it is implemented with recursion, thus it would not have any problems with long command)
+- async command (aka background)
+- logic operators based on exit value
+- brackets
+- multiple commands
+- TODO: pipeline, expansion, etc.
+
+A fantastic line editor has been DONE, and it will be adapted very SOON! 😘
## Build
+👉 ISO C++26 is used, please make sure gcc-14 or above is installed, and gcc-15/16 is most recommended
+
+(clang doesn't work well, don't use it!)
+
```sh
-make
+make magic-enum # download dependencies
+make # build project
```
## Usage
+Valid options can be found here `include/option.h`
+
+Or just run without any options
+
```sh
build/ccshell
```
-ignore this test
+## Development
+
+ignore the test file (deprecated)
```sh
git update-index --skip-worktree src/test.cc
```