Skip to content

jacobmealey/slush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slush logo: A shell you can drink!

Build

Slush goals & objectives

Slush is not planned to be a useful interactive shell, but instead a lightweight POSIX-compliant shell inspired by Dash. Below is a list of objectives for the near term. The to-do list is always growing as I learn more about what goes into a POSIX shell.

Todo

  • Subshell
    • Backtick subshell
    • Dollar sign subshell
  • Pipelines
    • better pipelines that don't require EOF
  • Expansions
    • Brace expansions
    • Parameter Expansion
    • Tilde Expansion
    • Pathname Expansion
  • Basic single quote strings
  • Double quote strings with substitutions
  • File redirects
  • Redirect input with <
  • Explicit file descriptor redirects
  • String Splitting
  • Globbing
  • Environment handling
    • Calling variables
    • Assigning Variables
    • Special Parameters
      • previous exit status
      • Positional params
      • PID of subshell
      • PID of most recent background
      • Name and shell startups
  • Control Flow
    • if
    • elif
    • else
    • while
    • until
    • for
  • Lists
    • And-if (||)
    • Or-if (&&)
  • Background process control
    • Moving jobs to the background
    • bringing jobs to the foreground
    • listing available jobs
  • essential built-ins
  • ctrl-c to kill jobs [BROKEN]
    • fix bug where ctrl-c on a job that modifies TTY state utterly breaks the terminal (for example less)
    • fix bug where ctrl-c kills bg jobs as well
    • Use libc calls directly (no ctrl-c rs crate)
    • jobs in array aren't removed when child ends
  • Path cleaning w/ out clean-path library
  • Built in functions

About

🥤 A shell you can drink!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •