docs: Simplify installation process and docs (#643)
This commit is contained in:
parent
ec54180e42
commit
5b440c0bb0
83
README.md
83
README.md
|
@ -19,12 +19,12 @@
|
||||||
src="https://repology.org/badge/tiny-repos/starship.svg"
|
src="https://repology.org/badge/tiny-repos/starship.svg"
|
||||||
alt="Packaging status"/></a
|
alt="Packaging status"/></a
|
||||||
><br />
|
><br />
|
||||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --><a href="#contributors"><img src="https://img.shields.io/badge/all%20contributors-53-orange" alt="All Contributors"></a><!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
||||||
<a href="https://discord.gg/8Jzqu3T"
|
<a href="https://discord.gg/8Jzqu3T"
|
||||||
><img
|
><img
|
||||||
src="https://img.shields.io/discord/567163873606500352?logo=discord"
|
src="https://img.shields.io/discord/567163873606500352?logo=discord"
|
||||||
alt="Chat on Discord"
|
alt="Chat on Discord"
|
||||||
/></a>
|
/></a>
|
||||||
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --><a href="#contributors"><img src="https://img.shields.io/badge/all%20contributors-53-orange" alt="All Contributors"></a><!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h4 align="center">
|
<h4 align="center">
|
||||||
|
@ -39,27 +39,27 @@
|
||||||
<a href="https://github.com/starship/starship/blob/master/README.md"
|
<a href="https://github.com/starship/starship/blob/master/README.md"
|
||||||
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-us.png" alt="English"
|
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-us.png" alt="English"
|
||||||
/></a>
|
/></a>
|
||||||

|
|
||||||
<a href="https://github.com/starship/starship/blob/master/docs/ja-JP/guide/README.md"
|
<a href="https://github.com/starship/starship/blob/master/docs/ja-JP/guide/README.md"
|
||||||
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-jp.png" alt="日本語"
|
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-jp.png" alt="日本語"
|
||||||
/></a>
|
/></a>
|
||||||

|
|
||||||
<a href="https://github.com/starship/starship/blob/master/docs/zh-TW/guide/README.md"
|
<a href="https://github.com/starship/starship/blob/master/docs/zh-TW/guide/README.md"
|
||||||
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-tw.png" alt="繁體中文"
|
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-tw.png" alt="繁體中文"
|
||||||
/></a>
|
/></a>
|
||||||

|
|
||||||
<a href="https://translate.starship.rs/project/starship-prompt/zh-CN"
|
<a href="https://translate.starship.rs/project/starship-prompt/zh-CN"
|
||||||
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-cn.png" alt="简体中文"
|
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-cn.png" alt="简体中文"
|
||||||
/></a>
|
/></a>
|
||||||

|
|
||||||
<a href="https://translate.starship.rs/project/starship-prompt/de"
|
<a href="https://translate.starship.rs/project/starship-prompt/de"
|
||||||
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-de.png" alt="Deutsch"
|
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-de.png" alt="Deutsch"
|
||||||
/></a>
|
/></a>
|
||||||

|
|
||||||
<a href="https://translate.starship.rs/project/starship-prompt/fr"
|
<a href="https://translate.starship.rs/project/starship-prompt/fr"
|
||||||
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-fr.png" alt="Français"
|
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-fr.png" alt="Français"
|
||||||
/></a>
|
/></a>
|
||||||

|
|
||||||
<a href="https://translate.starship.rs/project/starship-prompt/ru"
|
<a href="https://translate.starship.rs/project/starship-prompt/ru"
|
||||||
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ru.png" alt="Русский"
|
><img height="20" src="https://raw.githubusercontent.com/starship/starship/master/media/flag-ru.png" alt="Русский"
|
||||||
/></a>
|
/></a>
|
||||||
|
@ -82,21 +82,18 @@ The prompt shows information you need while you're working, while staying sleek
|
||||||
## 🍬 Features
|
## 🍬 Features
|
||||||
|
|
||||||
- Prompt character turns red if the last command exits with non-zero code
|
- Prompt character turns red if the last command exits with non-zero code
|
||||||
- Current username if not the same as the logged-in user
|
- Current Go version (`🐹`)
|
||||||
- Current Java version(`☕`)
|
- Current Java version(`☕`)
|
||||||
- Current Node.js version(`⬢`)
|
- Current Node.js version(`⬢`)
|
||||||
- Current Rust version (`🦀`)
|
|
||||||
- Current Ruby version (`💎`)
|
|
||||||
- Current Python version (`🐍`)
|
|
||||||
- Current PHP version (`🐘`)
|
- Current PHP version (`🐘`)
|
||||||
- Current Go version (`🐹`)
|
- Current Python version (`🐍`)
|
||||||
- Nix-shell environment detection
|
- Current Ruby version (`💎`)
|
||||||
- Print an environment variable
|
- Current Rust version (`🦀`)
|
||||||
|
- Current .NET version (`•NET`)
|
||||||
- Current version of package in current directory (`📦`)
|
- Current version of package in current directory (`📦`)
|
||||||
- npm (Node.js)
|
- npm (Node.js)
|
||||||
- cargo (Rust)
|
- cargo (Rust)
|
||||||
- poetry (Python)
|
- poetry (Python)
|
||||||
- Current battery level and status
|
|
||||||
- Current Git branch and rich repo status:
|
- Current Git branch and rich repo status:
|
||||||
- `=` — conflicting changes
|
- `=` — conflicting changes
|
||||||
- `⇡` — ahead of remote branch
|
- `⇡` — ahead of remote branch
|
||||||
|
@ -108,10 +105,19 @@ The prompt shows information you need while you're working, while staying sleek
|
||||||
- `+` — added files
|
- `+` — added files
|
||||||
- `»` — renamed files
|
- `»` — renamed files
|
||||||
- `✘` — deleted files
|
- `✘` — deleted files
|
||||||
- Execution time of the last command if it exceeds the set threshold
|
- Current Mercurial branch
|
||||||
|
- Current battery level and status
|
||||||
|
- `⇡` – charging
|
||||||
|
- `⇣` – discharging
|
||||||
|
- `•` – fully charged
|
||||||
- Indicator for jobs in the background (`✦`)
|
- Indicator for jobs in the background (`✦`)
|
||||||
- Current Kubernetes Cluster and Namespace (`☸`)
|
- Current Kubernetes Cluster and Namespace (`☸`)
|
||||||
- Current AWS profile (`☁️`)
|
- Current Amazon Web Services (AWS) profile (`☁️`)
|
||||||
|
- Execution time of the last command
|
||||||
|
- Custom environment variable value
|
||||||
|
- Nix-shell environment detection
|
||||||
|
- Current username if not the same as the logged-in user
|
||||||
|
- Optional current time in 12/24hr format
|
||||||
|
|
||||||
## 🚀 Installation
|
## 🚀 Installation
|
||||||
|
|
||||||
|
@ -123,48 +129,26 @@ The prompt shows information you need while you're working, while staying sleek
|
||||||
|
|
||||||
1. Install the **starship** binary:
|
1. Install the **starship** binary:
|
||||||
|
|
||||||
**[Download archives of precompiled binaries](https://github.com/starship/starship/releases)** if you don't use the platforms below.
|
#### Install Latest Version
|
||||||
|
|
||||||
#### Homebrew
|
##### With Shell:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ brew install starship
|
curl -fsSL https://starship.rs/install.sh | sh
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Rust (v1.38 or higher)
|
#### Install via Package Manager
|
||||||
|
|
||||||
|
##### With [Homebrew](https://brew.sh/):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ cargo install starship
|
brew install starship
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Arch Linux (AUR)
|
##### With [Scoop](https://scoop.sh):
|
||||||
|
|
||||||
Starship is available on the AUR under the name `starship`. Install it with `yay` or your favorite AUR helper.
|
```powershell
|
||||||
|
scoop install starship
|
||||||
```sh
|
|
||||||
$ yay -S starship
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Nix (unstable)
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ nix-env --install starship
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Termux
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ pkg install starship
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Other x86-64 Linux Platforms
|
|
||||||
|
|
||||||
Download a prebuilt binary and place in /usr/local/bin/
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ wget -q --show-progress https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-gnu.tar.gz
|
|
||||||
$ tar xvf starship-x86_64-unknown-linux-gnu.tar.gz
|
|
||||||
$ sudo mv starship /usr/local/bin/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
1. Add the init script to your shell's config file:
|
1. Add the init script to your shell's config file:
|
||||||
|
@ -308,6 +292,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||||
|
|
||||||
<!-- markdownlint-enable -->
|
<!-- markdownlint-enable -->
|
||||||
<!-- prettier-ignore-end -->
|
<!-- prettier-ignore-end -->
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||||
|
|
||||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../../../install/install.sh
|
|
@ -0,0 +1,264 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Options
|
||||||
|
#
|
||||||
|
# -V, --verbose
|
||||||
|
# Enable verbose output for the installer
|
||||||
|
#
|
||||||
|
# -f, -y, --force, --yes
|
||||||
|
# Skip the confirmation prompt during installation
|
||||||
|
#
|
||||||
|
# -p, --platform
|
||||||
|
# Override the platform identified by the installer
|
||||||
|
#
|
||||||
|
# -b, --bin-dir
|
||||||
|
# Override the bin installation directory
|
||||||
|
#
|
||||||
|
# -a, --arch
|
||||||
|
# Override the architecture identified by the installer
|
||||||
|
#
|
||||||
|
# -B, --base-url
|
||||||
|
# Override the base URL used for downloading releases
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
printf "\n"
|
||||||
|
|
||||||
|
BOLD="$(tput bold 2>/dev/null || echo '')"
|
||||||
|
GREY="$(tput setaf 0 2>/dev/null || echo '')"
|
||||||
|
UNDERLINE="$(tput smul 2>/dev/null || echo '')"
|
||||||
|
RED="$(tput setaf 1 2>/dev/null || echo '')"
|
||||||
|
GREEN="$(tput setaf 2 2>/dev/null || echo '')"
|
||||||
|
YELLOW="$(tput setaf 3 2>/dev/null || echo '')"
|
||||||
|
BLUE="$(tput setaf 4 2>/dev/null || echo '')"
|
||||||
|
MAGENTA="$(tput setaf 5 2>/dev/null || echo '')"
|
||||||
|
CYAN="$(tput setaf 6 2>/dev/null || echo '')"
|
||||||
|
NO_COLOR="$(tput sgr0 2>/dev/null || echo '')"
|
||||||
|
|
||||||
|
info() {
|
||||||
|
printf "${BOLD}${GREY}>${NO_COLOR} $@\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
warn() {
|
||||||
|
printf "${YELLOW}! $@${NO_COLOR}\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
error() {
|
||||||
|
printf "${RED}x $@${NO_COLOR}\n" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
complete() {
|
||||||
|
printf "${GREEN}✓${NO_COLOR} $@\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch() {
|
||||||
|
local command
|
||||||
|
if hash curl 2>/dev/null; then
|
||||||
|
set +e
|
||||||
|
command="curl --silent --fail --location $1"
|
||||||
|
curl --silent --fail --location "$1"
|
||||||
|
rc=$?
|
||||||
|
set -e
|
||||||
|
else
|
||||||
|
if hash wget 2>/dev/null; then
|
||||||
|
set +e
|
||||||
|
command="wget -O- -q $1"
|
||||||
|
wget -O- -q "$1"
|
||||||
|
rc=$?
|
||||||
|
set -e
|
||||||
|
else
|
||||||
|
error "No HTTP download program (curl, wget) found…"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $rc -ne 0 ]; then
|
||||||
|
printf "\n" >&2
|
||||||
|
error "Command failed (exit code $rc): ${BLUE}${command}${NO_COLOR}"
|
||||||
|
printf "\n" >&2
|
||||||
|
info "This is likely due to Starship not yet supporting your configuration." >&2
|
||||||
|
info "If you would like to see a build for your configuration," >&2
|
||||||
|
info "please create an issue requesting a build for ${MAGENTA}${ARCH}-${PLATFORM}${NO_COLOR}:" >&2
|
||||||
|
info "${BOLD}${UNDERLINE}https://github.com/starship/starship/issues/new/${NO_COLOR}\n" >&2
|
||||||
|
exit $rc
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Currently supporting:
|
||||||
|
# - win (Git Bash)
|
||||||
|
# - darwin
|
||||||
|
# - linux
|
||||||
|
# - linux_musl (Alpine)
|
||||||
|
detect_platform() {
|
||||||
|
local platform="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
||||||
|
|
||||||
|
# check for MUSL
|
||||||
|
if [ "${platform}" = "linux" ]; then
|
||||||
|
if ldd /bin/sh | grep -i musl >/dev/null; then
|
||||||
|
platform=unknown-linux-musl
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# mingw is Git-Bash
|
||||||
|
if echo "${platform}" | grep -i mingw >/dev/null; then
|
||||||
|
platform=pc-windows-msvc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${platform}" = "linux" ]; then
|
||||||
|
platform=unknown-linux-gnu
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${platform}" = "darwin" ]; then
|
||||||
|
platform=apple-darwin
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${platform}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Currently supporting:
|
||||||
|
# - x86_64
|
||||||
|
# - i386
|
||||||
|
detect_arch() {
|
||||||
|
local arch="$(uname -m | tr '[:upper:]' '[:lower:]')"
|
||||||
|
|
||||||
|
# `uname -m` in some cases mis-reports 32-bit OS as 64-bit, so double check
|
||||||
|
if [ "${arch}" = "x64" ] && [ "$(getconf LONG_BIT)" -eq 32 ]; then
|
||||||
|
arch=i386
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${arch}"
|
||||||
|
}
|
||||||
|
|
||||||
|
confirm() {
|
||||||
|
if [ -z "${FORCE-}" ]; then
|
||||||
|
printf "${MAGENTA}?${NO_COLOR} $@ ${BOLD}[y/N]${NO_COLOR} "
|
||||||
|
set +e
|
||||||
|
read yn < /dev/tty
|
||||||
|
rc=$?
|
||||||
|
set -e
|
||||||
|
if [ $rc -ne 0 ]; then
|
||||||
|
error "Error reading from prompt (please re-run with the \`--yes\` option)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "$yn" != "y" ] && [ "$yn" != "yes" ]; then
|
||||||
|
error "Aborting (please answer \"yes\" to continue)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_bin_dir() {
|
||||||
|
local bin_dir="$1"
|
||||||
|
|
||||||
|
# https://stackoverflow.com/a/11655875
|
||||||
|
local good=$( IFS=:
|
||||||
|
for path in $PATH; do
|
||||||
|
if [ "${path}" = "${bin_dir}" ]; then
|
||||||
|
echo 1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ "${good}" != "1" ]; then
|
||||||
|
warn "Bin directory ${bin_dir} is not in your \$PATH"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# defaults
|
||||||
|
if [ -z "${PLATFORM-}" ]; then
|
||||||
|
PLATFORM="$(detect_platform)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${BIN_DIR-}" ]; then
|
||||||
|
BIN_DIR=/usr/local/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${ARCH-}" ]; then
|
||||||
|
ARCH="$(detect_arch)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${BASE_URL-}" ]; then
|
||||||
|
BASE_URL="https://github.com/starship/starship/releases"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# parse argv variables
|
||||||
|
while [ "$#" -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
-p|--platform) PLATFORM="$2"; shift 2;;
|
||||||
|
-b|--bin-dir) BIN_DIR="$2"; shift 2;;
|
||||||
|
-a|--arch) ARCH="$2"; shift 2;;
|
||||||
|
-B|--base-url) BASE_URL="$2"; shift 2;;
|
||||||
|
|
||||||
|
-V|--verbose) VERBOSE=1; shift 1;;
|
||||||
|
-f|-y|--force|--yes) FORCE=1; shift 1;;
|
||||||
|
|
||||||
|
-p=*|--platform=*) PLATFORM="${1#*=}"; shift 1;;
|
||||||
|
-b=*|--bin-dir=*) BIN_DIR="${1#*=}"; shift 1;;
|
||||||
|
-a=*|--arch=*) ARCH="${1#*=}"; shift 1;;
|
||||||
|
-B=*|--base-url=*) BASE_URL="${1#*=}"; shift 1;;
|
||||||
|
-V=*|--verbose=*) VERBOSE="${1#*=}"; shift 1;;
|
||||||
|
-f=*|-y=*|--force=*|--yes=*) FORCE="${1#*=}"; shift 1;;
|
||||||
|
|
||||||
|
*) error "Unknown option: $1"; exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "${ARCH}" = "i386" ]; then
|
||||||
|
error "i386 builds are not yet available for Starship\n"
|
||||||
|
info "If you would like to see a build for your configuration,"
|
||||||
|
info "please create an issue requesting a build for ${MAGENTA}${ARCH}-${PLATFORM}${NO_COLOR}:"
|
||||||
|
info "${BOLD}${UNDERLINE}https://github.com/starship/starship/issues/new/${NO_COLOR}\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf " ${UNDERLINE}Configuration${NO_COLOR}\n"
|
||||||
|
info "${BOLD}Bin directory${NO_COLOR}: ${GREEN}${BIN_DIR}${NO_COLOR}"
|
||||||
|
info "${BOLD}Platform${NO_COLOR}: ${GREEN}${PLATFORM}${NO_COLOR}"
|
||||||
|
info "${BOLD}Arch${NO_COLOR}: ${GREEN}${ARCH}${NO_COLOR}"
|
||||||
|
|
||||||
|
# non-empty VERBOSE enables verbose untarring
|
||||||
|
if [ ! -z "${VERBOSE-}" ]; then
|
||||||
|
VERBOSE=v
|
||||||
|
info "${BOLD}Verbose${NO_COLOR}: yes"
|
||||||
|
else
|
||||||
|
VERBOSE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
EXT=tar.gz
|
||||||
|
if [ "${PLATFORM}" = win ]; then
|
||||||
|
EXT=zip
|
||||||
|
fi
|
||||||
|
|
||||||
|
URL="${BASE_URL}/latest/download/starship-${ARCH}-${PLATFORM}.${EXT}"
|
||||||
|
info "Tarball URL: ${UNDERLINE}${BLUE}${URL}${NO_COLOR}"
|
||||||
|
check_bin_dir "${BIN_DIR}"
|
||||||
|
confirm "Install Starship ${GREEN}latest${NO_COLOR} to ${BOLD}${GREEN}${BIN_DIR}${NO_COLOR}?"
|
||||||
|
|
||||||
|
info "Installing Starship, please wait…"
|
||||||
|
|
||||||
|
fetch "${URL}" \
|
||||||
|
| tar xzf${VERBOSE} - \
|
||||||
|
-C "${BIN_DIR}"
|
||||||
|
|
||||||
|
complete "Starship installed"
|
||||||
|
echo
|
||||||
|
info "Please follow the steps for your shell to complete the installation:
|
||||||
|
|
||||||
|
${BOLD}${UNDERLINE}Bash${NO_COLOR}
|
||||||
|
Add the following to the end of ${BOLD}~/.bashrc${NO_COLOR}:
|
||||||
|
|
||||||
|
eval \"\$(starship init bash)\"
|
||||||
|
|
||||||
|
${BOLD}${UNDERLINE}Fish${NO_COLOR}
|
||||||
|
Add the following to the end of ${BOLD}~/.config/fish/config.fish${NO_COLOR}:
|
||||||
|
|
||||||
|
starship init fish | source
|
||||||
|
|
||||||
|
${BOLD}${UNDERLINE}Zsh${NO_COLOR}
|
||||||
|
Add the following to the end of ${BOLD}~/.zshrc${NO_COLOR}:
|
||||||
|
|
||||||
|
eval \"\$(starship init zsh)\"
|
||||||
|
|
||||||
|
"
|
Loading…
Reference in New Issue