#!/bin/bash # set -x # Цвета для вывода RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Форматирование текста function msgerr() { echo -e "${RED}$1${NC}" } function msgok() { echo -e "${GREEN}$1${NC}" } function msgpr() { echo -e "\e[35m$1${NC}" } msgpr "hey! this is talias-d!" # Распечатать найденный публичный ключ pubkey_print() { echo "=== Содержимое файла: $1 ===" echo "" cat "$1" echo "" echo "=== Конец файла ===" } # Работа с публичными ключами public_keys() { local SSH_DIR=$HOME/.ssh local FILES=($(find ${SSH_DIR} -type f -name "*.pub" 2>/dev/null)) local count=${#FILES[@]} # Создаем нужную папку, если не существует mkdir -p $SSH_DIR if [ "$count" -eq 0 ]; then # Не найден ключ msgerr "Публичные SSH ключи не найдены. Будет совершена попытка создать в директории ${SSH_DIR}." local ALGORITHM="ed25519" local filepath="${SSH_DIR}/id_${ALGORITHM}" ssh-keygen -t $ALGORITHM -f ${filepath} -N "" > /dev/null pubkey_print "${filepath}.pub" elif [ "$count" -eq 1 ]; then # Найден один ключ msgok "Найден один публичный SSH ключ" pubkey_print ${FILES[@]} else # Найдено больше одного msgerr "Найдено $count публичных ключей. Какой показать:" select file in "${FILES[@]}"; do if [ -n "$file" ]; then pubkey_print ${file} break else echo "Неверный выбор. Попробуйте снова." fi done fi msgok "Ключ для копирования в gitea: https://g.torshes.ru/user/settings/keys" msgpr "Нажмите Enter для продолжения..." read -n 1 # -n 1 - одна клавиша, -s - скрытый ввод } # Установить пакет check_apt() { sudo apt install $1 -y } # Скачать galias для установки install_galias() { git clone ssh://git@g.torshes.ru:57322/self-settings/galias.git ~/devTools/.galias } # Установка необходимых пакетов need_install() { check_apt git check_apt zsh } install_ohmyzsh() { # ZSH=$HOME/devTools/.oh-my-zsh CHSH=yes RUNZSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" git clone https://github.com/ohmyzsh/ohmyzsh.git ~/devTools/.oh-my-zsh # cp ~/.zshrc ~/.zshrc.orig ## На этом моменте уже должен быть скачан galias cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc chsh -s $(which zsh) } public_keys && install_galias && need_install && install_ohmyzsh && msgok "УСПЕШНАЯ УСТАНОВКА"