Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/elves/elvish
Powerful scripting language & Versatile interactive shell
https://github.com/elves/elvish
go programming-language shell unix
Last synced: about 1 month ago
JSON representation
Powerful scripting language & Versatile interactive shell
- Host: GitHub
- URL: https://github.com/elves/elvish
- Owner: elves
- License: bsd-2-clause
- Created: 2013-06-16T08:43:32.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2024-05-04T17:17:11.000Z (about 1 month ago)
- Last Synced: 2024-05-04T17:21:09.280Z (about 1 month ago)
- Topics: go, programming-language, shell, unix
- Language: Go
- Homepage: https://elv.sh/
- Size: 14.6 MB
- Stars: 5,344
- Watchers: 108
- Forks: 294
- Open Issues: 297
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Lists
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-ricing - Elvish - Expressive Programming Language + Versatile Interactive Shell. (Go) (Packages / Shells)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-go-extra - elvish - 06-16T08:43:32Z|2022-08-22T03:25:54Z| (Build Automation / Standard CLI)
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- cli-apps - Elvish - Elvish is a versatile interactive shell and expressive programming language, combined into one seamless package. (<a name="shells"></a>Shells)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- Awesome-BSD-Ports-Programs-And-Projects - ![Open-Source Software - 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. (Ports and Programs / UNIX Shells)
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. Stars:`5.3K`. (Command Line / Standard CLI)
- go-awesome - elvish - 交互式 Shell 语言 (开源类库 / 解释器)
- awesome-starred - elvish - Friendly Interactive Shell and Expressive Programming Language (Go)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-stars - elvish
- awesome-stars - elvish
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-go-projects - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-starred - elves/elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (shell)
- awesome-go-stars - elvish(stars: 5313) - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-stars - elves/elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (Go)
- awesome-golang-repositories - elvish
- awesome-projects - elvish - Friendly and expressive shell (Go)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-macos-commandline - Elvish - A friendly and expressive Unix shell. (Uncategorized / Uncategorized)
- awesome-go-cn - elvish
- awesome-stars - elvish
- awesome-stars - elves/elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (Go)
- my-awesome-stars - elves/elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (Go)
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (shell)
- awesome-stars - elves/elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (Go)
- awesome-starts - elves/elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (Go)
- awesome-go-with-stars - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- awesome-projects - elvish - Friendly Interactive Shell and Expressive Programming Language (Go)
- awesome-stars - elvish - Friendly and expressive Unix shell (Go)
- repo-1316-awesome-go-cn - elvish
- repo-1211-awesome-go-cn - elvish
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- Go-awesome - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- artsz-awesome - elves/elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (Go)
- awesome-go-cn - elvish
- awesome-starts - elves/elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (Go)
- stars - elves/elvish
- awesome-programming-languages - Elvish - Elvish is an expressive programming language and a versatile interactive shell, combined into one seamless package. It runs on Linux, BSDs, macOS and Windows. (Uncategorized / Uncategorized)
- awesome-stars - elvish - Friendly Interactive Shell and Expressive Programming Language (Go)
- go-awesome - elvish - Interactive shell language (Open source library / Interpreter)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome - elvish - Elvish = Expressive Programming Language + Versatile Interactive Shell (Go)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- awesome-stars - elvish - Friendly Interactive Shell and Expressive Programming Language (Go)
- go-awesome - elvish - 交互式 Shell 语言 (开源类库 / 解释器)
- awesome-repositories - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- awesome-stars - elves/elvish - `★5485` Powerful scripting language & Versatile interactive shell (Go)
- awesome - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- awesome-go-zh - elvish
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- awesome-cli-apps - Elvish - Elvish is a versatile interactive shell and expressive programming language, combined into one seamless package. (<a name="shells"></a>Shells)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-go - elvish - An expressive programming language and a versatile interactive shell. (Command Line / Standard CLI)
- awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
- my-awesome-stars - elves/elvish - Powerful scripting language & Versatile interactive shell (Go)
README
# Elvish: Expressive Programming Language + Versatile Interactive Shell
[![CI status](https://github.com/elves/elvish/workflows/CI/badge.svg)](https://github.com/elves/elvish/actions?query=workflow%3ACI)
[![FreeBSD & gccgo test status](https://img.shields.io/cirrus/github/elves/elvish?logo=Cirrus%20CI&label=CI2)](https://cirrus-ci.com/github/elves/elvish/master)
[![Test Coverage](https://img.shields.io/codecov/c/github/elves/elvish/master.svg?logo=Codecov&label=coverage)](https://app.codecov.io/gh/elves/elvish/tree/master)
[![Go Reference](https://pkg.go.dev/badge/[email protected])](https://pkg.go.dev/src.elv.sh@master)
[![Packaging status](https://repology.org/badge/tiny-repos/elvish.svg)](https://repology.org/project/elvish/versions)
[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/ElvishShell)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](https://matrix.org)):
[![Gitter](https://img.shields.io/badge/gitter-elves/elvish-blue.svg?logo=gitter-white)](https://gitter.im/elves/elvish)
[![Telegram Group](https://img.shields.io/badge/[email protected])](https://telegram.me/elvish)
[![#elvish on libera.chat](https://img.shields.io/badge/libera.chat-%23elvish-blue.svg)](https://web.libera.chat/#elvish)
[![#users:elv.sh](https://img.shields.io/badge/matrix-%23users:elv.sh-blue.svg)](https://matrix.to/#/#users:elv.sh)## Documentation
Documentation for Elvish lives on the official website https://elv.sh,
including:- [Learning material](https://elv.sh/learn)
- [Reference docs](https://elv.sh/ref), including the
[language reference](https://elv.sh/ref/language.html),
[the `elvish` command](https://elv.sh/ref/command.html), and all the modules
in the standard library- [Blog posts](https://elv.sh/blog), including release notes
The source for the documentation is in the
[website](https://github.com/elves/elvish/tree/master/website) directory.## License
All source files use the BSD 2-clause license (see [LICENSE](LICENSE)), except
for the following:- Files in [pkg/diff](pkg/diff) and [pkg/rpc](pkg/rpc) are released under the
BSD 3-clause license, since they are derived from
[Go's source code](https://github.com/golang/go). See
[pkg/diff/LICENSE](pkg/diff/LICENSE) and [pkg/rpc/LICENSE](pkg/rpc/LICENSE).- Files in [pkg/persistent](pkg/persistent) and its subdirectories are
released under EPL 1.0, since they are partially derived from
[Clojure's source code](https://github.com/clojure/clojure). See
[pkg/persistent/LICENSE](pkg/persistent/LICENSE).- Files in [pkg/md/spec](pkg/md/spec) are released under the Creative Commons
CC-BY-SA 4.0 license, since they are derived from
[the CommonMark spec](https://github.com/commonmark/commonmark-spec). See
[pkg/md/spec/LICENSE](pkg/md/spec/LICENSE).## Building Elvish
Most users do not need to build Elvish from source. Prebuilt binaries for the
latest commit are provided for
[Linux amd64](https://dl.elv.sh/linux-amd64/elvish-HEAD.tar.gz),
[macOS amd64](https://dl.elv.sh/darwin-amd64/elvish-HEAD.tar.gz),
[macOS arm64](https://dl.elv.sh/darwin-arm64/elvish-HEAD.tar.gz),
[Windows amd64](https://dl.elv.sh/windows-amd64/elvish-HEAD.zip) and
[many other platforms](https://elv.sh/get).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.20.
To build Elvish from source, run one of the following commands:
```sh
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/[email protected] # Install a specific version
```### Controlling the installation location
The
[`go install`](https://pkg.go.dev/cmd/go#hdr-Compile_and_install_packages_and_dependencies)
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](https://pkg.go.dev/runtime/pprof).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):```sh
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:```sh
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](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](https://pkg.go.dev/plugin),
which is only available on a few platforms.Plugin support requires building Elvish with [cgo](https://pkg.go.dev/cmd/cgo).
The official [prebuilt binaries](https://elv.sh/get) 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:```sh
env CGO_ENABLED=1 go install ./cmd/elvish
```To build a plugin, see this [example](https://github.com/elves/sample-plugin).
## Packaging Elvish
See [PACKAGING.md](PACKAGING.md) for notes for packagers.
## Contributing to Elvish
See [CONTRIBUTING.md](CONTRIBUTING.md) for notes for contributors.
## Reporting security issues
See [SECURITY.md](SECURITY.md) for how to report security issues.