39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
# rash-coreutils
|
|
|
|
Portable Unix-style core utilities for Rash, implemented in Racket.
|
|
|
|
Version 0.2.7 includes text/pipeline tools (`head`, `tail`, `wc`, `sort`, `uniq`,
|
|
`cut`, `tee`, `tr`), path and filesystem helpers (`basename`, `dirname`,
|
|
`realpath`, `readlink`, `stat`, `du`, `df`, `mktemp`), environment commands
|
|
(`printenv`, `env`), and `date` backed by Gregor.
|
|
|
|
Rash remains responsible for shell syntax such as globbing, pipelines and
|
|
redirection. `rash-coreutils` additionally accepts Racket regular expressions as
|
|
path selectors.
|
|
|
|
|
|
## Racket tooling
|
|
|
|
`rash-coreutils` also exposes the `raco` command from the active Racket installation, without requiring `raco` to be on PATH.
|
|
|
|
```text
|
|
raco setup rash-coreutils
|
|
raco pkg show
|
|
```
|
|
|
|
In Racket expression mode, use `coreutils-raco`, for example `(coreutils-raco '(setup rash-coreutils))`. The name `raco` is reserved for the Rash command binding.
|
|
|
|
## Windows paths
|
|
|
|
Commands that print paths use forward slashes on Windows. This keeps their textual output directly reusable in Rash line mode, where a backslash is an escape character. Internally, Racket path values remain native paths.
|
|
|
|
```text
|
|
pwd
|
|
C:/devel/racket/rash-coreutils/
|
|
|
|
mktemp
|
|
C:/Users/hans/AppData/Local/Temp/tmp123
|
|
```
|
|
|
|
A native Racket path value can still be passed directly, for example `ls (values (find-system-path 'temp-dir))`.
|