2019-04-04 00:14:26 +00:00
< h3 align = "center" > Starship ✨🚀< / h3 >
2019-04-13 04:33:50 +00:00
< p align = "center" > The cross-shell prompt for astronauts.< / p >
2019-04-15 18:38:45 +00: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-04-16 03:24:15 +00:00
< a href = "https://discord.gg/8Jzqu3T" > < img src = "https://badgen.net/badge/chat/on%20discord/7289da" alt = "Chat on Discord" > < / a >
2019-04-15 18:38:45 +00:00
< / p >
2019-04-02 03:23:03 +00:00
---
2019-04-13 04:45:33 +00: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 16:51:12 +00: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 15:38:36 +00:00
- Speed
- Concurrency of segment logic execution
2019-04-13 16:51:12 +00: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 05:15:48 +00: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 16:51:12 +00: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 04:45:33 +00: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 13:15:00 +00:00
- [x] Current Rust version (`🦀`).
2019-04-25 15:06:18 +00:00
- [x] Current Python version (`🐍`).
2019-05-12 03:58:45 +00:00
- [x] Current Go version (`🐹`).
- [x] Package version of package in current directory (`📦`).
2019-04-13 04:45:33 +00:00
- [ ] Current battery level and status
2019-05-14 04:43:11 +00: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 04:45:33 +00:00
- [ ] Indicator for jobs in the background (`✦`).
- [ ] Execution time of the last command if it exceeds the set threshold.
2019-04-13 16:51:12 +00:00
### Other features
2019-04-17 15:38:36 +00:00
2019-04-13 16:51:12 +00:00
- [ ] `.starshiprc` configuration (JSON or TOML)
- [ ] Custom sections given commands or binaries
- [ ] Self-updating
2019-04-13 04:45:33 +00:00
### Shell support
- [x] Fish shell
2019-04-17 20:48:44 +00:00
- [x] Z Shell
2019-04-13 04:45:33 +00:00
- [ ] Bash
2019-04-13 04:33:50 +00:00
2019-04-13 16:51:12 +00:00
### Test strategy
2019-04-17 15:38:36 +00:00
- [x] Per-segment benchmarking
- [x] Per-segment unit + integration tests
2019-04-13 16:51:12 +00:00
- [ ] Shell + OS matrix acceptance tests
2019-04-13 04:33:50 +00: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 15:38:36 +00:00
1. Navigate to the adapters directory
```bash
cd adapters
```
#### Fish
2019-04-13 04:33:50 +00:00
1. Install the fish shell prompt with fisher:
```bash
fisher $PWD
```
2019-04-17 15:38:36 +00: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-14 04:43:11 +00:00
2019-04-24 21:12:08 +00:00
## Contributing
To test locally run the below command:
```bash
cargo run -- $status
2019-04-25 15:06:18 +00:00
```