fbd86925a9
If the shell outputs more data than can be buffered the test will deadlock. I noticed this when working on issue #661. The tests I was writing would deadlock because a tty can buffer significantly less data than a pipe. Even using a pipe, which typically buffers 8 to 128 KiB, this is theoretically a problem. So use a goroutine to capture the output as it is generated rather than reading it all at once when the test terminates. |
||
---|---|---|
cmd | ||
pkg | ||
tools | ||
website | ||
.appveyor.yml | ||
.cirrus.yml | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
CONTRIBUTING.md | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
Makefile | ||
NEXT-RELEASE.md | ||
README.md |
Elvish: Friendly Interactive Shell and Expressive Programming Language
Elvish is a friendly interactive shell and an expressive programming language. It runs on Linux, BSDs, macOS and Windows. Despite its pre-1.0 status, it is already suitable for most daily interactive use.
Visit the official website https://elv.sh for prebuilt binaries, blog posts, documentation and other resources.
User groups (all connected with matterbridge):
Building Elvish
Most users can just use prebuilt binaries and do not need to build from source.
To build Elvish from source, you need
-
A supported OS: Linux, {Free,Net,Open}BSD, macOS, or Windows.
NOTE: Windows support is experimental, and only Windows 10 is supported.
-
Go >= 1.13.
To build Elvish from source, follow these steps:
# 1. Start from any directory you want to store Elvish's source code
# 2. Clone the Git repository
git clone https://github.com/elves/elvish
# 3. Change into the repository
cd elvish
# 4. Build and install Elvish
make get
This will install Elvish to ~/go/bin
.
Alternatively, you can also just use go get
to install Elvish:
go get -u github.com/elves/elvish
This will clone the Git repository to ~/go/src/github.com/elves/elvish
,
updating it if already exists, and install Elvish to ~/go/bin
. However, Elvish
built this way will lack version information, although it is otherwise fully
functional.
Some tips on installation:
-
Remember to add
$HOME/go/bin
to yourPATH
so that you can runelvish
directly. -
If you want to install Elvish to a different place, follow these steps to set
GOPATH
, and Elvish will be installed to$GOPATH/bin
instead.
Contributing to Elvish
See CONTRIBUTING.md for more notes for contributors.