Files
galias-d/galias-d.sh

78 lines
2.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 "=== Конец файла ==="
}
# Установить пакет
check_apt() {
sudo apt install $1 -y
}
# Работа с публичными ключами
public_keys() {
local SSH_DIR=$HOME/.ssh
local FILES=($(find ${SSH_DIR} -type f -name "*.pub" 2>/dev/null))
local count=${#FILES[@]}
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 "Нажмите любую клавишу для продолжения..."
read -n 1 -s # -n 1 - одна клавиша, -s - скрытый ввод
}
public_keys