2024-08-25 11:07:07 +05:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
# set -x
|
|
|
|
|
|
|
2026-02-20 21:09:55 +05:00
|
|
|
|
# Цвета для вывода
|
|
|
|
|
|
RED='\033[0;31m'
|
|
|
|
|
|
GREEN='\033[0;32m'
|
|
|
|
|
|
YELLOW='\033[1;33m'
|
|
|
|
|
|
BLUE='\033[0;34m'
|
|
|
|
|
|
NC='\033[0m' # No Color
|
2024-08-25 11:07:07 +05:00
|
|
|
|
|
2026-02-20 21:09:55 +05:00
|
|
|
|
# Форматирование текста
|
|
|
|
|
|
|
|
|
|
|
|
function msgerr()
|
|
|
|
|
|
{
|
|
|
|
|
|
echo -e "${RED}$1${NC}"
|
|
|
|
|
|
}
|
|
|
|
|
|
function msgok()
|
|
|
|
|
|
{
|
|
|
|
|
|
echo -e "${GREEN}$1${NC}"
|
|
|
|
|
|
}
|
|
|
|
|
|
function msgpr()
|
|
|
|
|
|
{
|
|
|
|
|
|
echo -e "\e[35m$1${NC}"
|
2024-08-25 11:07:07 +05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 21:09:55 +05:00
|
|
|
|
msgpr "hey! this is talias-d!"
|
2024-08-25 11:07:07 +05:00
|
|
|
|
|
2026-02-20 21:09:55 +05:00
|
|
|
|
# Распечатать найденный публичный ключ
|
|
|
|
|
|
pubkey_print() {
|
|
|
|
|
|
echo "=== Содержимое файла: $1 ==="
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
cat "$1"
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo "=== Конец файла ==="
|
|
|
|
|
|
}
|
2024-08-25 11:07:07 +05:00
|
|
|
|
|
2026-02-20 21:09:55 +05:00
|
|
|
|
# Работа с публичными ключами
|
|
|
|
|
|
public_keys() {
|
|
|
|
|
|
local SSH_DIR=$HOME/.ssh
|
|
|
|
|
|
local FILES=($(find ${SSH_DIR} -type f -name "*.pub" 2>/dev/null))
|
|
|
|
|
|
local count=${#FILES[@]}
|
2024-08-25 11:07:07 +05:00
|
|
|
|
|
2026-02-20 21:09:55 +05:00
|
|
|
|
# Создаем нужную папку, если не существует
|
|
|
|
|
|
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[@]}
|
2024-08-25 11:07:07 +05:00
|
|
|
|
else
|
2026-02-20 21:09:55 +05:00
|
|
|
|
# Найдено больше одного
|
|
|
|
|
|
msgerr "Найдено $count публичных ключей. Какой показать:"
|
|
|
|
|
|
select file in "${FILES[@]}"; do
|
|
|
|
|
|
if [ -n "$file" ]; then
|
|
|
|
|
|
pubkey_print ${file}
|
|
|
|
|
|
break
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "Неверный выбор. Попробуйте снова."
|
|
|
|
|
|
fi
|
|
|
|
|
|
done
|
2024-08-25 11:07:07 +05:00
|
|
|
|
fi
|
2026-02-20 21:09:55 +05:00
|
|
|
|
|
|
|
|
|
|
msgok "Ключ для копирования в gitea: https://g.torshes.ru/user/settings/keys"
|
|
|
|
|
|
msgpr "Нажмите Enter для продолжения..."
|
2026-02-22 15:45:31 +05:00
|
|
|
|
read -n 1 # -n 1 - одна клавиша, -s - скрытый ввод
|
2024-08-25 11:07:07 +05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-22 10:55:15 +05:00
|
|
|
|
# Установить пакет
|
|
|
|
|
|
check_apt() {
|
|
|
|
|
|
sudo apt install $1 -y
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-22 15:42:05 +05:00
|
|
|
|
# Скачать galias для установки
|
2026-02-22 15:44:00 +05:00
|
|
|
|
install_galias() {
|
2026-02-22 15:42:05 +05:00
|
|
|
|
git clone ssh://git@g.torshes.ru:57322/self-settings/galias.git ~/devTools/.galias
|
2026-02-22 15:52:41 +05:00
|
|
|
|
ln -s ~/devTools/.galias/.zshrc ~/.zshrc
|
2026-02-22 15:42:05 +05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-22 10:58:48 +05:00
|
|
|
|
# Установка необходимых пакетов
|
|
|
|
|
|
need_install() {
|
2026-02-22 15:56:39 +05:00
|
|
|
|
msgok Запрос пароля для установки пакетов
|
|
|
|
|
|
sudo apt update
|
2026-02-22 10:58:48 +05:00
|
|
|
|
check_apt git
|
|
|
|
|
|
check_apt zsh
|
|
|
|
|
|
}
|
2026-02-20 21:09:55 +05:00
|
|
|
|
|
2026-02-22 10:58:48 +05:00
|
|
|
|
install_ohmyzsh() {
|
2026-02-22 15:42:05 +05:00
|
|
|
|
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/devTools/.oh-my-zsh
|
|
|
|
|
|
|
2026-02-22 15:56:39 +05:00
|
|
|
|
msgok Запрос пароля для смены оболочки на $(which zsh)
|
2026-02-22 15:42:05 +05:00
|
|
|
|
chsh -s $(which zsh)
|
2026-02-22 10:58:48 +05:00
|
|
|
|
}
|
2026-02-20 21:09:55 +05:00
|
|
|
|
|
2026-02-22 15:44:00 +05:00
|
|
|
|
public_keys &&
|
|
|
|
|
|
install_galias &&
|
|
|
|
|
|
need_install &&
|
2026-02-22 15:57:21 +05:00
|
|
|
|
install_ohmyzsh && msgok "Установка успешно завершена. Требуется перезайти в консоль."
|