Files
galias-d/galias-d.sh

106 lines
3.1 KiB
Bash
Raw Normal View History

2024-08-25 11:07:07 +05:00
#!/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
2024-08-25 11:07:07 +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
}
msgpr "hey! this is talias-d!"
2024-08-25 11:07:07 +05:00
# Распечатать найденный публичный ключ
pubkey_print() {
echo "=== Содержимое файла: $1 ==="
echo ""
cat "$1"
echo ""
echo "=== Конец файла ==="
}
2024-08-25 11:07:07 +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
# Создаем нужную папку, если не существует
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
# Найдено больше одного
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
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
}
# Установить пакет
check_apt() {
sudo apt install $1 -y
}
2026-02-22 15:42:05 +05:00
# Скачать galias для установки
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() {
check_apt git
check_apt zsh
}
2026-02-22 10:58:48 +05:00
install_ohmyzsh() {
2026-02-22 15:42:05 +05:00
# 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
2026-02-22 15:52:41 +05:00
# cp ~/devTools/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
2026-02-22 15:42:05 +05:00
chsh -s $(which zsh)
2026-02-22 10:58:48 +05:00
}
public_keys &&
install_galias &&
need_install &&
install_ohmyzsh && msgok "УСПЕШНАЯ УСТАНОВКА"