From cc4eb4f544c0c2fcf02b9434cabecee56939c23a Mon Sep 17 00:00:00 2001 From: madumlao Date: Sat, 23 Mar 2024 13:13:29 +0800 Subject: [PATCH] Add support for RHEL / Oracle (9xx) --- install-rhel.sh | 80 +++++++++++++++++++++++++++++++++++++++++++++++++ install.sh | 17 +++++++++-- 2 files changed, 95 insertions(+), 2 deletions(-) create mode 100755 install-rhel.sh diff --git a/install-rhel.sh b/install-rhel.sh new file mode 100755 index 0000000..19cc71b --- /dev/null +++ b/install-rhel.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# run by install.sh +# tested on os-release 9,3 +APP_DIR="$(dirname "$0")" + +echo "Run an apt update" +if sudo -l dnf > /dev/null; then + sudo dnf check-update +else + echo "Unable to run dnf commands, please install manually" +fi + +echo "Install git and friends" +if sudo -l apt > /dev/null; then + sudo dnf install -y git +else + echo "Unable to autoinstall git and friends, please install manually" +fi + +echo "Install zsh and friends" +if sudo -l dnf > /dev/null; then + sudo dnf install -y zsh PackageKit-command-not-found sqlite +else + echo "Unable to autoinstall zsh and friends, please install manually" +fi + +echo "Install oh-my-zsh and plugins" +if ! [ -d "$HOME/.oh-my-zsh" ]; then + git clone https://github.com/ohmyzsh/ohmyzsh "$HOME/.oh-my-zsh" +fi + +( + cd "$HOME/.oh-my-zsh/plugins" + git clone https://github.com/zsh-users/zsh-autosuggestions + git clone https://github.com/zsh-users/zsh-syntax-highlighting +) + +echo "Changing default shell" +ZSH_PATH="$(which zsh)" +if [ -x "$ZSH_PATH" ]; then + if sudo -l chsh -s $ZSH_PATH $USER; then + sudo chsh -s $ZSH_PATH $USER + elif sudo -l usermod -s $ZSH_PATH $USER; then + sudo usermod -s $ZSH_PATH $USER + else + echo "Cannot change shell using sudo, trying password" + if ! chsh -s "$ZSH_PATH"; then + echo "Unable to change shell to $ZSH_PATH, please change shell manually" + fi + fi +else + echo "No zsh available" +fi + +SKEL_DIR="$APP_DIR/skel" +BACK_DIR="$APP_DIR/backup" + +echo "Backing up original profile under $BACK_DIR" +mkdir -pv "$BACK_DIR" + +cd "$SKEL_DIR" +OLDIFS="$IFS" +IFS=$'\n' +for x in $(ls -a); do + [ "$x" = '.' ] || [ "$x" = '..' ] && continue; + [ "$x" = '.profile-local' ] || [ "$x" = '.profile-private' ] && continue; + [ -r "$HOME/$x" ] && echo -ne "Backup: " && mv -v "$HOME/$x" "$BACK_DIR" + echo -ne "Linking: " && ln -srv "$(pwd)/$x" "$HOME" +done +IFS="$OLDIFS" + +echo "Install vim and friends" +if sudo -l apt > /dev/null; then + sudo dnf install -y vim-enhanced +else + echo "Unable to autoinstall vim and friends, please install manually" +fi +mkdir -pv "$HOME/.vim/bundle" +git clone https://github.com/VundleVim/Vundle.vim "$HOME/.vim/bundle/Vundle.vim" +vim +PluginInstall +qall diff --git a/install.sh b/install.sh index f8113ba..0d044bb 100755 --- a/install.sh +++ b/install.sh @@ -26,8 +26,21 @@ cd "$APP_DIR" APP_DIR="$(pwd)" if [ "$(uname)" == "Linux" ]; then - # TODO: add support for different distributions - ./install-ubuntu.sh + # detect WSL + if uname -r | grep -q WSL > /dev/null; then + export PROFILE_WSL=y + fi + + source /etc/os-release + export PROFILE_DISTRO="$ID" + export PROFILE_DISTRO_VERSION="$VERSION_ID" + export PROFILE_DISTRO_CODENAME="$VERSION_CODENAME" + export PROFILE_DISTRO_FAMILY="$ID_LIKE" + case "$PROFILE_DISTRO" in + ubuntu ) ./install-ubuntu.sh ;; + ol | rhel ) ./install-rhel.sh ;; + * ) echo "Unknown distro, install manually" + esac elif [ "$(uname)" == "Darwin" ]; then echo TODO: install-macos.sh else