✨ (install.sh): refactor eza installation logic to streamline package manager checks and enhance fallback methods for various operating systems
This commit is contained in:
69
install.sh
69
install.sh
@@ -42,36 +42,65 @@ detect_os() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Helper: install eza if the package manager couldn't provide it
|
# Install eza using package manager or fallback methods
|
||||||
install_eza_fallback() {
|
install_eza() {
|
||||||
local os=$(detect_os)
|
local os=$(detect_os)
|
||||||
echo "Attempting fallback installation of eza..."
|
echo "Installing eza..."
|
||||||
|
|
||||||
case $os in
|
case $os in
|
||||||
ubuntu|debian)
|
macos)
|
||||||
# Install cargo if it doesn't exist
|
if ! command -v brew &> /dev/null; then
|
||||||
if ! command -v cargo &> /dev/null; then
|
echo "Homebrew is not installed. Installing Homebrew..."
|
||||||
echo "Installing Rust and cargo..."
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||||
sudo apt-get update
|
fi
|
||||||
sudo apt-get install -y curl build-essential
|
brew install eza
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
;;
|
||||||
source ~/.cargo/env
|
ubuntu|debian)
|
||||||
|
sudo apt-get update
|
||||||
|
if ! sudo apt-get install -y eza; then
|
||||||
|
echo "Package manager installation failed, attempting fallback..."
|
||||||
|
# Install cargo if it doesn't exist
|
||||||
|
if ! command -v cargo &> /dev/null; then
|
||||||
|
echo "Installing Rust and cargo..."
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y curl build-essential
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||||
|
source ~/.cargo/env
|
||||||
|
fi
|
||||||
|
cargo install eza
|
||||||
fi
|
fi
|
||||||
cargo install eza
|
|
||||||
;;
|
;;
|
||||||
fedora)
|
fedora)
|
||||||
sudo dnf install -y eza || {
|
if ! sudo dnf install -y eza; then
|
||||||
command -v cargo &> /dev/null && cargo install eza
|
echo "Package manager installation failed, attempting fallback..."
|
||||||
}
|
if command -v cargo &> /dev/null; then
|
||||||
|
cargo install eza
|
||||||
|
else
|
||||||
|
wget -qO- https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz | tar xz
|
||||||
|
sudo install -m 755 eza /usr/local/bin/eza
|
||||||
|
fi
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
centos|rhel)
|
centos|rhel)
|
||||||
if command -v cargo &> /dev/null; then
|
if ! sudo yum install -y eza; then
|
||||||
cargo install eza
|
echo "Package manager installation failed, attempting fallback..."
|
||||||
else
|
if command -v cargo &> /dev/null; then
|
||||||
|
cargo install eza
|
||||||
|
else
|
||||||
|
wget -qO- https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz | tar xz
|
||||||
|
sudo install -m 755 eza /usr/local/bin/eza
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
arch|manjaro)
|
||||||
|
if ! sudo pacman -Syu --noconfirm eza; then
|
||||||
|
echo "Package manager installation failed, attempting fallback..."
|
||||||
wget -qO- https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz | tar xz
|
wget -qO- https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz | tar xz
|
||||||
sudo install -m 755 eza /usr/local/bin/eza
|
sudo install -m 755 eza /usr/local/bin/eza
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
echo "Unsupported operating system for package manager installation, using fallback..."
|
||||||
wget -qO- https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz | tar xz
|
wget -qO- https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz | tar xz
|
||||||
sudo install -m 755 eza /usr/local/bin/eza
|
sudo install -m 755 eza /usr/local/bin/eza
|
||||||
;;
|
;;
|
||||||
@@ -100,7 +129,7 @@ install_zoxide_fallback() {
|
|||||||
# Core: install required packages via the preferred package manager, then fall back where needed
|
# Core: install required packages via the preferred package manager, then fall back where needed
|
||||||
install_packages() {
|
install_packages() {
|
||||||
local os=$(detect_os)
|
local os=$(detect_os)
|
||||||
local base_packages="zsh git wget fontconfig eza zoxide"
|
local base_packages="zsh git wget fontconfig zoxide"
|
||||||
|
|
||||||
case $os in
|
case $os in
|
||||||
macos)
|
macos)
|
||||||
@@ -129,7 +158,7 @@ install_packages() {
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
# Fallbacks for any tools that are still missing after the package-manager step
|
# Fallbacks for any tools that are still missing after the package-manager step
|
||||||
command -v eza &> /dev/null || install_eza_fallback
|
command -v eza &> /dev/null || install_eza
|
||||||
command -v zoxide &> /dev/null || install_zoxide_fallback
|
command -v zoxide &> /dev/null || install_zoxide_fallback
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user