Let the user choose the installation method

This commit is contained in:
Ferran Basora 2022-02-03 20:37:25 +00:00
parent 7e553af99f
commit b56e9f1099
2 changed files with 64 additions and 44 deletions

View File

@ -37,13 +37,24 @@ more with `--regexp` parameter.
[![demo](https://asciinema.org/a/232775.png?ts=1)](https://asciinema.org/a/232775?autoplay=1) [![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 <kbd>prefix</kbd> + <kbd>I</kbd>. 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 `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/). recommended way to install Rust is from the official [download page](https://rustup.rs/).
## Tmux integration
Clone the repo: Clone the repo:
``` ```
@ -69,19 +80,6 @@ Reload TMUX conf by running:
tmux source-file ~/.tmux.conf 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 <kbd>prefix</kbd> + <kbd>I</kbd>. You should now be able to use
the plugin!
## Configuration ## Configuration
If you want to customize how is shown your tmux-thumbs hints those all available If you want to customize how is shown your tmux-thumbs hints those all available

View File

@ -39,10 +39,8 @@ else
cat << EOF cat << EOF
It looks like this is the first time you are executing tmux-thumbs It looks like this is the first time you are executing tmux-thumbs
because the binary is not present. because the binary is not present. We are going to proceed with the
installation.
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.
Do you want to continue? Do you want to continue?
@ -53,37 +51,61 @@ fi
read -rs -n 1 read -rs -n 1
if ! [ -x "$(command -v cargo)" ]; then cat << EOF
platform="$(uname -s) $(uname -m)"
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 EOF
"Darwin x86_64")
url=$(echo "${sources}" | grep -o 'https://.*darwin.zip' | uniq)
curl -sL "${url}" | bsdtar -xf - thumbs tmux-thumbs
;; select opt in "Compile" "Download"; do
"Linux x86_64") case $opt in
url=$(echo "${sources}" | grep -o 'https://.*linux-musl.tar.gz' | uniq) Compile|1)
curl -sL "${url}" | tar -zxf - thumbs tmux-thumbs
;; 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" echo "❌ Ouh? Choose an available option."
exit 1
;;
esac esac
done
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
cat << EOF cat << EOF
Installation complete! 💯 Installation complete! 💯