summaryrefslogtreecommitdiffstats
path: root/dist/man/dwvsh.1
diff options
context:
space:
mode:
authorRory Dudley2024-04-11 23:19:27 -0600
committerRory Dudley2024-04-11 23:19:27 -0600
commitee3633a9a3a7ae484b8a84aa5d5d578cab19a9c6 (patch)
tree01ef601d11b7aabae6550e466ee05d2d64816b7f /dist/man/dwvsh.1
parent87e4a3da43e7d203d3405f977ce8e93298dd55c3 (diff)
downloaddwarvish-ee3633a9a3a7ae484b8a84aa5d5d578cab19a9c6.tar.gz
Create the dwvsh(1) manual page
This patch adds a cursory man page for the dwvsh binary.
Notes
Notes: This man page is incomplete. In addition to continuing updating it as the shell gains more features, some more info should be provided about how the shell works in general.
Diffstat (limited to 'dist/man/dwvsh.1')
-rw-r--r--dist/man/dwvsh.1132
1 files changed, 132 insertions, 0 deletions
diff --git a/dist/man/dwvsh.1 b/dist/man/dwvsh.1
new file mode 100644
index 0000000..8a48043
--- /dev/null
+++ b/dist/man/dwvsh.1
@@ -0,0 +1,132 @@
+.Dd $Mdocdate: April 11 2024 $
+.Dt DWVSH 1
+.Os
+.Sh NAME
+.Nm dwvsh
+.Nd A (mostly) POSIX compliant shell
+.Sh SYNOPSIS
+.Nm
+.Op Ar file ...
+.Nm
+.Op Fl l
+.Sh DESCRIPTION
+.Nm
+is a (mostly) POSIX compliant shell, and tiny functional programming language
+for U**x-like operating systems.
+.Nm
+is designed to be fully compatible with
+.Xr bash 1 .
+See BUGS for more info on this.
+.Ss Builtin commands
+Currently,
+.Nm
+supports the following builtin commands:
+.Bl -tag -width "unalias" -compact
+.It Pa alias
+Allow users to define their own command aliases (i.e. alias vim=nvim).
+.It Pa cd
+Change directory.
+.It Pa exit
+Exit the shell.
+.It Pa export
+Set an environment variable, or list all environment variables.
+.It Pa source
+Run another shell script, retaining it's environment in the current shell.
+.It Pa unalias
+Clear a user defined command alias.
+.It Pa unset
+Clear an environment variable.
+.El
+.Ss Builtin command aliases
+.Bl -tag -width "unalias" -compact
+.It Pa quit
+Aliased to exit.
+.It Pa set
+Aliased to export.
+.El
+.Sh OPTIONS
+.Bl -tag -width 5n
+.It Fl l
+The shell is a login shell (only applicable if
+.Fl l
+is the only flag specified).
+.El
+.Sh FILES
+.Bl -tag -width "/etc/dwvshrc" -compact
+.It Pa /etc/dwvshrc
+Global RC file for
+.Nm ,
+always sourced when launched.
+.It Pa ~/.dwvshrc
+User defined RC file for
+.Nm ,
+may or may not exist.
+.El
+.Sh SEE ALSO
+.Xr bash 1 ,
+.Xr sh 1 ,
+.Sh EXAMPLES
+.Nm
+May be invoked with or without arguments. If ran with arguments, it will
+attempt to read and run the file(s) specified. If ran without arguments it will
+start up an interactive REPL.
+.Ss With arguments
+Imagine a file, hello.sh:
+.Bd -literal -offset indent
+#!/usr/bin/env sh
+echo 'Hello from dwvsh!'
+.Ed
+.Pp
+You can run this file with
+.Nm
+as shown below:
+.Bd -literal -offset indent
+$ dwvsh hello.sh
+Hello from dwvsh!
+.Ed
+.Pp
+Alternatively, you could change the first line of the script to:
+.Bd -literal -offset indent
+#!/usr/bin/env dwvsh
+.Ed
+.Pp
+Then simply call the script directly:
+.Bd -literal -offset indent
+$ chmod +x hello.sh
+$ ./hello.sh
+Hello from dwvsh!
+.Ed
+.Ss Without arguments
+This will start the read-eval-print-loop (REPL).
+The default/fallback prompt for
+.Nm
+is '|> ', but this may be changed by setting the PS1 environment variable, for
+instance:
+.Bd -literal -offset indent
+|> export PS1='$ '
+$
+.Ed
+.Sh BUGS
+.Nm
+is still in alpha, so it is missing a lot of functionality compared to
+.Xr bash 1 .
+.Pp
+In particular:
+.Pp
+- No way to redirect STDERR.
+.br
+- No builtin history.
+.br
+- Missing builtin commands (i.e. bind, etc).
+.br
+- No control flow.
+.br
+- No wildcards in paths.
+.br
+- No brace expansion in paths.
+.br
+- No tab autocompletion.
+.br
+- Man page and other documentation are woefully incomplete.
+.Sh AUTHORS
+.An Rory Dudley