tenseleyflow/rush / a98df8b

Browse files

chore: untrack and gitignore docs/ directory

Authored by espadonne
SHA
a98df8bb7ed1e3a3dfd6dd1386e442cf9970ca13
Parents
fd95775
Tree
86851d9

5 changed files

StatusFile+-
M .gitignore 1 0
D docs/RUSH.md 0 10
D docs/roadmap_overview.md 0 114
D docs/roadmap_phase0.md 0 29
D docs/roadmap_phase1.md 0 62
.gitignoremodified
@@ -15,3 +15,4 @@ Cargo.lock
1515
 .DS_Store
1616
 Thumbs.db
1717
 CLAUDE.md
18
+docs/
docs/RUSH.mddeleted
@@ -1,10 +0,0 @@
1
-# RUSH
2
-the rust shell
3
-
4
-rush aims to be a modern, friendly, and fast shell
5
-
6
-it should have 100% parity with bash, but also have some of the friendly features of fish.
7
-
8
-it should follow all standard shell protocols and follow other FOSS projects for guidance.
9
-
10
-we commit often and avoid coauthorship and Generated with ... messages.
docs/roadmap_overview.mddeleted
@@ -1,114 +0,0 @@
1
-# Rush Shell - Development Roadmap
2
-
3
-## Vision
4
-
5
-A modern, friendly, and fast shell with 100% bash compatibility and fish-like features.
6
-
7
-## Development Approach
8
-
9
-**Incremental**: Start with minimal working REPL, add features iteratively. Each phase produces a working shell with progressively more capabilities.
10
-
11
-## Phases
12
-
13
-### Phase 0: Project Setup ✅
14
-**Status**: Completed
15
-**Goal**: Establish workspace structure
16
-- 7-crate workspace architecture
17
-- All dependencies configured
18
-- Directory structure established
19
-
20
-### Phase 1: Minimal REPL 🔜
21
-**Status**: Next
22
-**Goal**: Interactive shell that executes basic commands
23
-- Simple command parsing
24
-- External command execution
25
-- Basic REPL with reedline
26
-- **Validation**: Can run `ls`, `pwd`, `echo hello world`
27
-
28
-### Phase 2: Variables & Expansion
29
-**Goal**: Shell variables and expansions
30
-- Variable assignments and references
31
-- Parameter expansion (`${VAR}`, `${VAR:-default}`)
32
-- Command substitution `$(cmd)`
33
-- Word splitting
34
-
35
-### Phase 3: Pipelines & Redirection
36
-**Goal**: Pipelines and I/O redirection
37
-- Pipeline syntax: `cmd1 | cmd2 | cmd3`
38
-- Redirections: `<`, `>`, `>>`, `2>`, `2>&1`, `&>`
39
-- Pipe creation and management
40
-
41
-### Phase 4: Control Flow
42
-**Goal**: if/while/for/case statements
43
-- Conditional evaluation (if/then/else/fi)
44
-- Loop constructs (while/for)
45
-- Case statement matching
46
-- Built-in test command
47
-
48
-### Phase 5: Job Control
49
-**Goal**: Background jobs, fg/bg, signals
50
-- Job tracking and process groups
51
-- Terminal control
52
-- Signal handling (SIGCHLD, SIGTSTP, SIGINT)
53
-- Built-ins: `jobs`, `fg`, `bg`
54
-
55
-### Phase 6: Fish Features
56
-**Goal**: Syntax highlighting, suggestions, completions
57
-- Real-time syntax highlighting
58
-- History-based auto-suggestions
59
-- Smart tab completion
60
-- Better error messages
61
-
62
-### Phase 7: Bash Compatibility Hardening
63
-**Goal**: Close compatibility gaps
64
-- Extended glob patterns
65
-- Advanced parameter expansion
66
-- Brace expansion, arithmetic expansion
67
-- Here-documents, functions, arrays, subshells
68
-
69
-## Success Criteria
70
-
71
-- **Phase 1-3**: Daily command-line use (files, git, basic scripts)
72
-- **Phase 4-5**: Run moderately complex bash scripts unmodified
73
-- **Phase 6**: Better UX than bash for interactive use
74
-- **Phase 7**: 90%+ compatibility with common bash patterns
75
-
76
-## Key Features
77
-
78
-### Bash Compatibility
79
-- Command execution and pipelines
80
-- Variables and expansions
81
-- Control flow (if/while/for/case)
82
-- Job control
83
-- Full POSIX shell compliance
84
-
85
-### Fish-Inspired Features
86
-- Syntax highlighting
87
-- Autosuggestions from history
88
-- Better error messages
89
-- Improved tab completion
90
-
91
-## Architecture
92
-
93
-7-crate modular design:
94
-- **rush-cli**: Main binary and REPL orchestration
95
-- **rush-parser**: Pest PEG parser for shell syntax
96
-- **rush-expand**: Variable/glob expansion engine
97
-- **rush-executor**: Command execution and pipelines
98
-- **rush-job**: Job control and process management
99
-- **rush-eval**: Control flow evaluation engine
100
-- **rush-interactive**: Fish-like interactive features
101
-
102
-## Technology Stack
103
-
104
-- **Parser**: Pest (PEG)
105
-- **REPL**: reedline
106
-- **Terminal**: crossterm
107
-- **Unix APIs**: nix
108
-- **Glob**: globset
109
-- **Error handling**: thiserror
110
-
111
-## Current Status
112
-
113
-**Phase 0**: ✅ Complete - Workspace established and compiling
114
-**Phase 1**: 🔜 Ready to begin - Minimal REPL implementation next
docs/roadmap_phase0.mddeleted
@@ -1,29 +0,0 @@
1
-# Phase 0: Project Setup
2
-
3
-**Status**: ✅ Completed
4
-**Goal**: Establish workspace structure
5
-
6
-## Tasks
7
-
8
-- [x] Initialize Cargo workspace with all 7 crates
9
-- [x] Add dependencies to each crate's Cargo.toml
10
-- [x] Create basic crate structure (lib.rs/main.rs files)
11
-- [x] Set up directory structure
12
-
13
-## Deliverable
14
-
15
-✅ Compiling workspace with placeholder code
16
-
17
-## Crates Created
18
-
19
-1. **rush-cli** - Main binary and REPL (binary crate)
20
-2. **rush-parser** - Lexer/parser (library)
21
-3. **rush-expand** - Variable/glob expansion (library)
22
-4. **rush-executor** - Command execution (library)
23
-5. **rush-job** - Job control (library)
24
-6. **rush-eval** - Control flow evaluation (library)
25
-7. **rush-interactive** - Fish-like features (library)
26
-
27
-## Next Steps
28
-
29
-Proceed to Phase 1: Minimal REPL
docs/roadmap_phase1.mddeleted
@@ -1,62 +0,0 @@
1
-# Phase 1: Minimal Shell (Interactive + Non-Interactive)
2
-
3
-**Status**: 🚧 In Progress
4
-**Goal**: Full-featured shell that executes basic commands in both interactive and non-interactive modes
5
-
6
-## Tasks
7
-
8
-### rush-cli
9
-- [ ] Command-line argument parsing (clap)
10
-  - [ ] Interactive mode (default when terminal)
11
-  - [ ] `-c "command"` flag for command strings
12
-  - [ ] Script file execution
13
-  - [ ] Stdin detection (isatty)
14
-- [ ] Interactive mode with reedline
15
-  - [ ] Basic REPL loop (read → parse → execute → print)
16
-  - [ ] Prompt rendering
17
-  - [ ] Ctrl+C and Ctrl+D handling
18
-- [ ] Non-interactive mode
19
-  - [ ] Read from file
20
-  - [ ] Read from stdin
21
-  - [ ] Execute and exit with proper status code
22
-
23
-### rush-parser
24
-- [ ] Create minimal pest grammar (simple commands only)
25
-- [ ] Define AST types: `SimpleCommand { args: Vec<String> }`
26
-- [ ] Implement parser that handles: `ls`, `echo hello`, `cat file.txt`
27
-- [ ] Handle empty lines and comments (#)
28
-
29
-### rush-executor
30
-- [ ] Execute external commands via `std::process::Command`
31
-- [ ] PATH resolution
32
-- [ ] Return exit codes
33
-- [ ] Proper stdout/stderr handling
34
-- [ ] Environment variable inheritance
35
-
36
-## Validation Criteria
37
-
38
-### Interactive Mode
39
-Must be able to run interactively:
40
-- `ls`
41
-- `pwd`
42
-- `echo hello world`
43
-- Exit with Ctrl+D or `exit` command
44
-
45
-### Non-Interactive Mode
46
-Must work with:
47
-- `rush -c "ls"`
48
-- `echo "pwd" | rush`
49
-- `rush script.sh` (where script.sh contains commands)
50
-- Proper exit codes (0 on success, non-zero on failure)
51
-
52
-## Files to Create
53
-
54
-1. `crates/rush-parser/src/grammar.pest` - Pest PEG grammar
55
-2. `crates/rush-parser/src/ast.rs` - AST type definitions
56
-3. `crates/rush-parser/src/parser.rs` - Parser implementation
57
-4. `crates/rush-cli/src/repl.rs` - REPL loop
58
-5. `crates/rush-executor/src/command.rs` - Command execution
59
-
60
-## Next Steps
61
-
62
-After Phase 1 completion, proceed to Phase 2: Variables & Expansion