بدون توضیح

Qi Xiao c853e4388f vscode: Fix highlighting of } before keywords. 1 سال پیش
.github 07791a4631 .github: Bump Go to 1.19.x. 1 سال پیش
.vscode b24421170a Add VS Code extension. 1 سال پیش
cmd 33a04f8dc1 Revamp flag handling in pkg/prog. 2 سال پیش
pkg dad7c6f035 README: Clarify license. 1 سال پیش
tools 775081b8cc Add tools/pre-push, intended to be used as a Git hook. 1 سال پیش
vscode c853e4388f vscode: Fix highlighting of } before keywords. 1 سال پیش
website e71eef57c1 website: Avoid using IDs starting with "toc-" for website elements. 1 سال پیش
.cirrus.yml 5dc8c02a32 Simplify FreeBSD CI setup. 2 سال پیش
.codecov.yml 98ee4aebdd pkg/cli/histutil: Ignore coverage of testDB. 1 سال پیش
.codespellrc 27f5c8cf6b vscode: Bundle extension before publishing. 1 سال پیش
.dockerignore f9302b1456 Update .dockerignore. 5 سال پیش
.gitattributes 615cbc2d0b Use .gitattributes to filter go sources through goimports 10 سال پیش
.gitignore b24421170a Add VS Code extension. 1 سال پیش
.gitlab-ci.yml 7a806b7ea2 Add "apk add git" to GitLab CI. 2 سال پیش
.prettierrc 1d36d299b8 Put flags for prettier in .prettierrc. 2 سال پیش
0.19.0-release-notes.md 93c9f86555 Add support for completing invocations of local executables 1 سال پیش
CONTRIBUTING.md d7c5e35d39 README: Update and expand build instructions. 1 سال پیش
Dockerfile f7cb556d9b Require Go 1.18. 2 سال پیش
LICENSE c1711bbd0a Project rename: das -> elvish 10 سال پیش
Makefile d7c5e35d39 README: Update and expand build instructions. 1 سال پیش
PACKAGING.md 280834b32b PACKAGING.md: Fix language tags of code fences. 2 سال پیش
README.md 684cfc2c82 README: Update codecov badge to point to their new UI. 1 سال پیش
SECURITY.md 1d62b0d68b Add a security policy doc. 2 سال پیش
go.mod f7cb556d9b Require Go 1.18. 2 سال پیش
go.sum 5f1673c6c4 Use go-cmp to report unexpected test results. 2 سال پیش

README.md

Elvish: Expressive Programming Language + Versatile Interactive Shell

CI status Test Coverage Go Reference Packaging status Twitter

Elvish is an expressive programming language and a versatile interactive shell, combined into one seamless package. It runs on Linux, BSDs, macOS and Windows.

Despite its pre-1.0 status, it is already suitable for most daily interactive use.

User groups (all connected thanks to Matrix): Gitter Telegram Group

Documentation

Documentation for Elvish lives on the official website https://elv.sh, including:

The source for the documentation is in the website directory.

License

All source files use the BSD 2-clause license (see LICENSE), except for the following:

Building Elvish

Most users do not need to build Elvish from source. Prebuilt binaries for the latest commit are provided for Linux amd64, macOS amd64, macOS arm64, Windows amd64 and many other platforms.

To build Elvish from source, you need

  • A supported OS: Linux, {Free,Net,Open}BSD, macOS, or Windows 10. Windows 10 support is experimental.

  • Go >= 1.18.

To build Elvish from source, run one of the following commands:

go install src.elv.sh/cmd/elvish@master # Install latest commit
go install src.elv.sh/cmd/elvish@latest # Install latest released version
go install src.elv.sh/cmd/elvish@v0.18.0 # Install a specific version

Controlling the installation location

The go install command installs Elvish to $GOBIN; the binary name is elvish. You can control the installation location by overriding $GOBIN, for example by prepending env GOBIN=... to the go install command.

If $GOBIN is not set, the installation location defaults to $GOPATH/bin, which in turn defaults to ~/go/bin if $GOPATH is also not set.

The installation directory is probably not in your OS's default $PATH. You should either either add it to $PATH, or manually copy the Elvish binary to a directory already in $PATH.

Building a variant

Elvish has several build variants with slightly different feature sets. For example, the withpprof build variant has profiling support.

These build variants are just alternative main packages. For example, to build the withpprof variant, run the following command (change the part after @ to get different versions):

go install src.elv.sh/cmd/withpprof/elvish@master

Building from a local source tree

If you are modifying Elvish's source code, you will want to clone Elvish's Git repository and build Elvish from the local source tree instead. To do this, run the following from the root of the source tree:

go install ./cmd/elvish

There is no need to specify a version like @master; when inside a source tree, go install will always use the whatever source code is present.

See CONTRIBUTING.md for more notes for contributors.

Building with experimental plugin support

Elvish has experimental support for building and importing plugins, modules written in Go. It relies on Go's plugin support, which is only available on a few platforms.

Plugin support requires building Elvish with cgo. The official prebuilt binaries are built without cgo for compatibility and reproducibility, but by default the Go toolchain builds with cgo enabled.

If you have built Elvish from source on a platform with plugin support, your Elvish build probably already supports plugins. To force cgo to be used when building Elvish, you can do the following:

env CGO_ENABLED=1 go install ./cmd/elvish

To build a plugin, see this example.

Packaging Elvish

See PACKAGING.md for notes for packagers.

Contributing to Elvish

See CONTRIBUTING.md for notes for contributors.

Reporting security issues

See SECURITY.md for how to report security issues.