commit c80da46882dc922bffa0eaa665588c4cfd61903a Author: Сергей Буравихин Date: Fri Jun 14 10:56:12 2024 +0300 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec4c964 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# Ranger + lnav + Автоматическая установка `ranger` и `lnav` (в случае отсутствия на АРМ) и настройка работы `ranger` с `lnav` + + # Как запустить? + `bash shell+ranger.sh` + + # Зависимости + Необходимо наличие пакетов `git` и `unzip` на АРМ. \ No newline at end of file diff --git a/shell+ranger.sh b/shell+ranger.sh new file mode 100644 index 0000000..e2f8299 --- /dev/null +++ b/shell+ranger.sh @@ -0,0 +1,132 @@ +#!/bin/bash +directory="$HOME/Документы/ranger" +LNAVCONFIG="lnav" + +if ! command -v git &> /dev/null; then +echo -e "\e[0;33m----------\e[0m" +echo "Error: git не установлен" +echo "Установите ПО Git и повторите снова" +echo -e "\e[0;33m----------\e[0m" +exit 1 +fi + +if ! command -v unzip &> /dev/null; then +echo -e "\e[0;33m----------\e[0m" +echo "Error: unzip не установлен" +echo "Установите ПО unzip и повторите снова" +echo -e "\e[0;33m----------\e[0m" +exit 1 +fi + +echo -e "\e[0;33m----------\e[0m" +echo -e "ДАННЫЙ СКРИПТ УСТАНОВИТ RAGNER, А ТАКЖЕ СДЕЛАТ В НЁМ ПО УМОЛЧАНИЮ ТЕКСТОВЫЙ РЕДАКТОР LNAV" + +echo -e "\e[0;33m----------\e[0m" +sleep 2 + +if ! [ -d $HOME/Документы/ ]; then +echo -e "\e[0;33m----------\e[0m" +echo 'Создаём $HOME/Документы' +echo -e "\e[0;33m----------\e[0m" +mkdir -p $HOME/Документы +fi + +if ! command -v lnav &> /dev/null; then +echo "Error: lnav не установлен" +echo "Выполнить установку lnav 0.12.2 или пропустить шаг? (y / n / s)" +read lnav + if [ "$lnav" == "n" ] || [ "$lnav" == "N" ]; then + echo -e "\e[0;31mОтмена выполнения\e[0m" + echo -e "\e[0;33m----------\e[0m" + exit 1 + elif [ "$lnav" == "s" ] || [ "$lnav" == "S" ]; then + echo -e "\e[0;33m----------\e[0m" + echo "Пропускаем шаг" + echo -e "\e[0;33m----------\e[0m" + else + echo -e "\e[0;33m----------\e[0m" + echo "Загружаем lnav" + LNAVCONFIG="/home/$USER/Документы/lnav" + wget -P /tmp https://github.com/tstack/lnav/releases/download/v0.12.2/lnav-0.12.2-linux-musl-x86_64.zip + unzip /tmp/lnav-0.12.2-linux-musl-x86_64.zip -d /tmp/ + cp /tmp/lnav-0.12.2/lnav /home/$USER/Документы/ + if [ -n "$BASH_VERSION" ]; then + echo "alias lnav='~/Документы/lnav'" >> ~/.bashrc + source ~/.bashrc + echo -e "\e[0;33m----------\e[0m" + echo "Алиас 'lnav' добавлен в ~/.bashrc" + echo -e "Перед использованием незабудьте выполнить \e[0;32msource ~/.bashrc" + echo -e "\e[0;33m----------\e[0m" + elif [ -n "$ZSH_VERSION" ]; then + echo "alias lnav='~/Документы/lnav'" >> ~/.zshrc + source ~/.zshrc + echo -e "\e[0;33m----------\e[0m" + echo "Алиас 'lnav' добавлен в ~/.zshrc" + echo -e "Перед использованием незабудьте выполнить \e[0;32msource ~/.zshrc" + echo -e "\e[0;33m----------\e[0m" + else + echo "Не удалось определить текущую оболочку" + echo "Скрипт \e[0;31mзавершился ошибкой.\e[0m" + exit 1 + fi + fi +fi + +if [ -d "$directory" ]; then + echo "Директория $directory существуют. Вы точно не выполняли скрипт ранее?" + echo -e "\e[0;33m----------\e[0m" + echo "Продолжить (это приведет к удалению $directory и новой загрузке ranger)? (y / n)" + read answer + echo -e "\e[0;33m----------\e[0m" + if [ "$answer" == "n" ] || [ "$answer" == "N" ]; then + echo -e "\e[0;31mОтмена выполнения\e[0m" + exit 1 + else + echo "Продолжаем выполнение, загружаю ranger в $directory." + echo -e "\e[0;33m----------\e[0m" + rm -rf $directory + git clone https://github.com/ranger/ranger.git $directory + sed -i "s/mime \^text, label editor = \${VISUAL:-\$EDITOR} -- \"\$@\"/mime ^text, label editor = \${VISUAL:-\$LNAVCONFIG} -- \"\$@\"/" $directory/ranger/config/rifle.conf + fi + +else + echo "Не удалось найти $directory, загружаю туда ranger." + echo -e "\e[0;33m----------\e[0m" + git clone https://github.com/ranger/ranger.git $directory + sed -i "s/mime \^text, label editor = \${VISUAL:-\$EDITOR} -- \"\$@\"/mime ^text, label editor = \${VISUAL:-\$LNAVCONFIG} -- \"\$@\"/" $directory/ranger/config/rifle.conf + +fi + +if [ -n "$BASH_VERSION" ]; then + echo "alias ranger='python3 $directory/ranger.py'" >> ~/.bashrc + source ~/.bashrc + echo -e "\e[0;33m----------\e[0m" + echo "Алиас 'ranger' добавлен в ~/.bashrc" + echo -e "Перед использованием незабудьте выполнить \e[0;32msource ~/.bashrc" + echo -e "\e[0;33m----------\e[0m" +elif [ -n "$ZSH_VERSION" ]; then + echo "alias ranger='python3 $directory/ranger.py'" >> ~/.zshrc + source ~/.zshrc + echo -e "\e[0;33m----------\e[0m" + echo "Алиас 'ranger' добавлен в ~/.zshrc" + echo -e "Перед использованием незабудьте выполнить \e[0;32msource ~/.zshrc" + echo -e "\e[0;33m----------\e[0m" +else + echo "Не удалось определить текущую оболочку" + echo "Скрипт \e[0;31mзавершился ошибкой.\e[0m" + exit 1 +fi + + +if [ -n "$BASH_VERSION" ]; then +echo "export LNAVCONFIG=$LNAVCONFIG" >> /home/$USER/.bashrc +elif [ -n "$ZSH_VERSION" ]; then +echo "export LNAVCONFIG=$LNAVCONFIG" >> /home/$USER/.zshrc +else +echo "Не удалось определить текущую оболочку" +echo "Скрипт \e[0;31mзавершился ошибкой.\e[0m" +exit 1 +fi +echo -e "\e[0;33m----------\e[0m" +echo "Скрипт выполнился успешно! Приятного пользования!" +echo -e "\e[0;33m----------\e[0m" \ No newline at end of file