2019-06-12 21:59:58 +01:00
<h1 align="center">
<br>
<img width="400" src="media/logo.png" alt="Starship – Cross-shell prompt">
2019-05-25 11:11:12 -04:00
<p align="center">
<a href="https://dev.azure.com/starship-control/starship/_build"><img src="https://badgen.net/azure-pipelines/starship-control/starship/Starship%20Test%20Suite" alt="Azure Pipelines Build Status"></a>
2019-05-29 22:58:46 +02:00
<a href="#contributors "><img src="https://badgen.net/badge/all%20contributors/7/orange" alt="All Contributors"></a>
2019-05-25 11:11:12 -04:00
<a href="https://discord.gg/8Jzqu3T"><img src="https://badgen.net/badge/chat/on%20discord/7289da" alt="Chat on Discord"></a>
</p>
2019-06-12 21:59:58 +01:00
<br>
</h1>
2019-04-01 23:23:03 -04:00
2019-04-13 00:45:33 -04:00
> ⚠️ This is very much work in progress, so please don't try to use it just yet!
Starship is a Rust port of the minimalistic, powerful, and extremely customizable prompt [Spaceship ZSH ](https://github.com/denysdovhan/spaceship-prompt ).
2019-04-13 12:51:12 -04:00
## Development plans
The project is beginning as a port of Spaceship ZSH, but will be improved in areas where Spaceship ZSH was previously limited:
2019-04-17 08:38:36 -07:00
- Speed
- Concurrency of segment logic execution
2019-04-13 12:51:12 -04:00
- Memoization of expensive operations
- Safety and error handling
- Testability of code
- Configuration
- Cross-shell support with JSON or TOML config files
2019-04-14 01:15:48 -04:00
We will _ not _ be aiming to achieve full parity with Spaceship ZSH as a result, so I am very open to discussing and reevaluating new solutions and ideas for the prompt.
2019-04-13 12:51:12 -04:00
I'm very new to Rust, so any help is appreciated when it comes to improving development patterns, writing idiomatic Rust, performance, safety, etc. 😄
2019-04-13 00:45:33 -04:00
### Prompt segments
- [x] Prompt character turns red if the last command exits with non-zero code.
- [x] Current Node.js version(`⬢` ).
2019-04-24 14:15:00 +01:00
- [x] Current Rust version (`🦀` ).
2019-04-25 16:06:18 +01:00
- [x] Current Python version (`🐍` ).
2019-05-12 04:58:45 +01:00
- [x] Current Go version (`🐹` ).
- [x] Package version of package in current directory (`📦` ).
2019-05-22 12:29:39 -04:00
- [x] Current battery level and status
2019-05-13 22:43:11 -06:00
- [x] Current Git branch and rich repo status:
- `=` — conflicting changes
- `⇡` — ahead of remote branch
- `⇣` — behind of remote branch
- `⇕` — diverged changes
- `?` — untracked changes
- `$` — stashed changes
- `!` — modified files
- `+` — added files
- `»` — renamed files
- `✘` — deleted files
2019-04-13 00:45:33 -04:00
- [ ] Indicator for jobs in the background (`✦` ).
- [ ] Execution time of the last command if it exceeds the set threshold.
2019-04-13 12:51:12 -04:00
### Other features
2019-04-17 08:38:36 -07:00
2019-06-10 15:56:17 +01:00
- [x] `starship.toml` configuration
2019-04-13 12:51:12 -04:00
- [ ] Custom sections given commands or binaries
- [ ] Self-updating
2019-04-13 00:45:33 -04:00
### Shell support
- [x] Fish shell
2019-04-17 16:48:44 -04:00
- [x] Z Shell
2019-04-13 00:45:33 -04:00
- [ ] Bash
2019-04-13 00:33:50 -04:00
2019-04-13 12:51:12 -04:00
### Test strategy
2019-04-17 08:38:36 -07:00
2019-06-10 15:56:17 +01:00
- [ ] Per-segment benchmarking
2019-04-17 08:38:36 -07:00
- [x] Per-segment unit + integration tests
2019-06-10 15:56:17 +01:00
- [x] Shell + OS matrix acceptance tests
2019-04-13 12:51:12 -04:00
2019-04-13 00:33:50 -04:00
## Setup
### Prerequisites
- Rust v1.33 or higher
### Getting Started
1. `cd` to the root of the **starship ** repo
1. Install the **starship ** binary:
```bash
cargo install --path .
` ``
2019-04-17 08:38:36 -07:00
1. Navigate to the adapters directory
` ``bash
cd adapters
` ``
#### Fish
2019-04-13 00:33:50 -04:00
1. Install the fish shell prompt with fisher:
` ``bash
fisher $PWD
` ``
2019-04-17 08:38:36 -07:00
#### oh-my-zsh
1. Install the zsh theme:
` ``bash
cp starship.zsh-theme ~/.oh-my-zsh/themes
` ``
1. In ` ~/.zshrc`, find the line with ` ZSH_THEME=` and set it to
` ``bash
ZSH_THEME="starship"
` ``
2019-05-13 22:43:11 -06:00
2019-04-24 17:12:08 -04:00
## Contributing
To test locally run the below command:
` ``bash
cargo run -- $status
2019-04-25 16:06:18 +01:00
` ``
2019-05-16 10:46:07 -06:00
## Contributors
Thanks goes to these wonderful people ([emoji key ](https://allcontributors.org/docs/en/emoji-key )):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore -->
2019-05-20 14:08:03 -04:00
<table><tr><td align="center"><a href="https://twitter.com/matchai"><img src="https://avatars0.githubusercontent.com/u/4658208?v=4" width="100px;" alt="Matan Kushner"/><br /><sub><b>Matan Kushner</b></sub></a><br /><a href="https://github.com/starship/starship/commits?author=matchai" title="Code">💻</a> <a href="#design -matchai" title="Design">🎨</a> <a href="#ideas -matchai" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra -matchai" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance -matchai" title="Maintenance">🚧</a> <a href="#review -matchai" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/starship/starship/commits?author=matchai" title="Tests">⚠️</a></td><td align="center"><a href="https://github.com/johnletey"><img src="https://avatars0.githubusercontent.com/u/30328854?v=4" width="100px;" alt="John Letey"/><br /><sub><b>John Letey</b></sub></a><br /><a href="https://github.com/starship/starship/commits?author=johnletey" title="Code">💻</a> <a href="#ideas -johnletey" title="Ideas, Planning, & Feedback">🤔</a> <a href="#review -johnletey" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/starship/starship/commits?author=johnletey" title="Tests">⚠️</a></td><td align="center"><a href="http://timmulqueen.com"><img src="https://avatars1.githubusercontent.com/u/6132021?v=4" width="100px;" alt="Tim Mulqueen"/><br /><sub><b>Tim Mulqueen</b></sub></a><br /><a href="https://github.com/starship/starship/commits?author=Multimo" title="Code">💻</a> <a href="#ideas -Multimo" title="Ideas, Planning, & Feedback">🤔</a> <a href="#review -Multimo" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/starship/starship/commits?author=Multimo" title="Tests">⚠️</a></td><td align="center"><a href="https://github.com/sirMerr"><img src="https://avatars2.githubusercontent.com/u/11183523?v=4" width="100px;" alt="Tiffany Le-Nguyen"/><br /><sub><b>Tiffany Le-Nguyen</b></sub></a><br /><a href="#ideas -sirMerr" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance -sirMerr" title="Maintenance">🚧</a> <a href="#review -sirMerr" title="Reviewed Pull Requests">👀</a></td><td align="center"><a href="https://about.snuggi.es"><img src="https://avatars0.githubusercontent.com/u/26250962?v=4" width="100px;" alt=" Snuggle"/><br /><sub><b> Snuggle</b></sub></a><br /><a href="#design -Snuggle" title="Design">🎨</a> <a href="#ideas -Snuggle" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance -Snuggle" title="Maintenance">🚧</a> <a href="#review -Snuggle" title="Reviewed Pull Requests">👀</a></td><td align="center"><a href="https://github.com/mehcode"><img src="https://avatars1.githubusercontent.com/u/753919?v=4" width="100px;" alt="Ryan Leckey"/><br /><sub><b>Ryan Leckey</b></sub></a><br /><a href="#review -mehcode" title="Reviewed Pull Requests">👀</a></td><td align="center"><a href="https://github.com/youssefhabri"><img src="https://avatars3.githubusercontent.com/u/1578005?v=4" width="100px;" alt="Youssef Habri"/><br /><sub><b>Youssef Habri</b></sub></a><br /><a href="https://github.com/starship/starship/commits?author=youssefhabri" title="Code">💻</a></td></tr></table>
2019-05-16 10:46:07 -06:00
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors ](https://github.com/all-contributors/all-contributors ) specification. Contributions of any kind welcome!