105 lines
3.0 KiB
Bash
Executable File
105 lines
3.0 KiB
Bash
Executable File
#!/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 -ns 1 # -n 1 - одна клавиша, -s - скрытый ввод
|
||
}
|
||
|
||
# Установить пакет
|
||
check_apt() {
|
||
sudo apt install $1 -y
|
||
}
|
||
|
||
# Скачать galias для установки
|
||
install_galiase() {
|
||
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 |