diff --git a/README.md b/README.md index 9b69b12..d3e4f12 100644 --- a/README.md +++ b/README.md @@ -37,13 +37,24 @@ more with `--regexp` parameter. [![demo](https://asciinema.org/a/232775.png?ts=1)](https://asciinema.org/a/232775?autoplay=1) -## Prerequisites +## Using Tmux Plugin Manager + +You can add this line to your list of [TPM](https://github.com/tmux-plugins/tpm) plugins in `.tmux.conf`: + +``` +set -g @plugin 'fcsonline/tmux-thumbs' + +run-shell ~/.tmux/plugins/tmux-thumbs/tmux-thumbs.tmux +``` + +To be able to install the plugin just hit prefix + I. You should now be able to use +the plugin! + +## Installation checking out the source code `tmux-thumbs` is written in Rust. You will need `rustc` version 1.35.0 or higher. The recommended way to install Rust is from the official [download page](https://rustup.rs/). -## Tmux integration - Clone the repo: ``` @@ -69,19 +80,6 @@ Reload TMUX conf by running: tmux source-file ~/.tmux.conf ``` -## Using Tmux Plugin Manager - -You can add this line to your list of [TPM](https://github.com/tmux-plugins/tpm) plugins in `.tmux.conf`: - -``` -set -g @plugin 'fcsonline/tmux-thumbs' - -run-shell ~/.tmux/plugins/tmux-thumbs/tmux-thumbs.tmux -``` - -To be able to install the plugin just hit prefix + I. You should now be able to use -the plugin! - ## Configuration If you want to customize how is shown your tmux-thumbs hints those all available diff --git a/tmux-thumbs-install.sh b/tmux-thumbs-install.sh index c7db802..1950172 100755 --- a/tmux-thumbs-install.sh +++ b/tmux-thumbs-install.sh @@ -39,10 +39,8 @@ else cat << EOF It looks like this is the first time you are executing tmux-thumbs - because the binary is not present. - - We are going to proceed with the installation. If you have Rust preinstalled, we will try to - compile the binary from source. Otherwise, a prebuild binary for your platform will be used. + because the binary is not present. We are going to proceed with the + installation. Do you want to continue? @@ -53,37 +51,61 @@ fi read -rs -n 1 -if ! [ -x "$(command -v cargo)" ]; then - platform="$(uname -s) $(uname -m)" +cat << EOF - echo " Rust is not installed! Trying to install ${platform} binary..." + Which format do you prefer for installation? - sources=$(curl -s "https://api.github.com/repos/fcsonline/tmux-thumbs/releases/latest" | grep browser_download_url) + 1) Compile: will use cargo to compile tmux-thumbs. It requires Rust. + 2) Download: will download a precompiled binary for your system. - case $platform in - "Darwin x86_64") - url=$(echo "${sources}" | grep -o 'https://.*darwin.zip' | uniq) - curl -sL "${url}" | bsdtar -xf - thumbs tmux-thumbs +EOF - ;; - "Linux x86_64") - url=$(echo "${sources}" | grep -o 'https://.*linux-musl.tar.gz' | uniq) - curl -sL "${url}" | tar -zxf - thumbs tmux-thumbs +select opt in "Compile" "Download"; do + case $opt in + Compile|1) - ;; + if ! [ -x "$(command -v cargo)" ]; then + echo '❌ Rust is not installed!' + exit 1 + fi + + echo ' Compiling tmux-thumbs, be patient:' + cargo build --release --target-dir=target + + break;; + Download|2) + platform="$(uname -s)_$(uname -m)" + + echo " Downloading ${platform} binary..." + + sources=$(curl -s "https://api.github.com/repos/fcsonline/tmux-thumbs/releases/latest" | grep browser_download_url) + + case $platform in + Darwin_x86_64) + url=$(echo "${sources}" | grep -o 'https://.*darwin.zip' | uniq) + curl -sL "${url}" | bsdtar -xf - thumbs tmux-thumbs + + ;; + Linux_x86_64) + url=$(echo "${sources}" | grep -o 'https://.*linux-musl.tar.gz' | uniq) + curl -sL "${url}" | tar -zxf - thumbs tmux-thumbs + + ;; + *) + echo "❌ Unknown platform: ${platform}" + exit 1 + ;; + esac + + chmod +x thumbs tmux-thumbs + mkdir -p target/release + mv thumbs tmux-thumbs target/release + + break;; *) - echo "Unknown platform: $platform" - exit 1 - ;; + echo "❌ Ouh? Choose an available option." esac - - chmod +x thumbs tmux-thumbs - mkdir -p target/release - mv thumbs tmux-thumbs target/release -else - echo ' Compiling tmux-thumbs, be patient:' - cargo build --release --target-dir=target -fi +done cat << EOF Installation complete! 💯