Compare commits

15 Commits
backup ... main

2 changed files with 100 additions and 44 deletions

View File

@@ -1,10 +1,12 @@
# Запустить удалённый скрипт: # Запустить удалённый скрипт:
## wget
```
wget -qO - https://g.torshes.ru/alex/galias-d/raw/branch/main/galias-d.sh | bash
```
## curl ## curl
``` ```
source <(curl -s https://g.torshes.ru/alex/galias-d/raw/branch/main/galias-d.sh) source <(curl -fsSL https://g.torshes.ru/alex/galias-d/raw/galias-d.sh)
``` ```
## wget
```
wget -qO - https://g.torshes.ru/alex/galias-d/raw/galias-d.sh | bash
```

130
galias-d.sh Normal file → Executable file
View File

@@ -2,50 +2,104 @@
# set -x # set -x
echo "hey! this is talias-d!" # Цвета для вывода
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() { check_apt() {
sudo apt install $1 -y sudo apt install $1 -y
} }
read_ssh_pub_key() { # Скачать galias для установки
local ssh_dir="$HOME/.ssh" install_galias() {
local pub_key git clone ssh://git@g.torshes.ru:57322/self-settings/galias.git ~/devTools/.galias
ln -s ~/devTools/.galias/.zshrc ~/.zshrc
if [ ! -d "$ssh_dir" ]; then
echo "Директория не существует" >&2
return 1
fi
pub_key=$(find "$ssh_dir" -maxdepth 1 -name "*.pub" -type f | head -n 1)
echo " Ключ для копирования в gitea https://g.torshes.ru/user/settings/keys"
# если pub_key не пустой и является файлом
if [ -n "$pub_key" ] && [ -f "$pub_key" ]; then
cat "$pub_key"
return 0
else
echo "Публичные SSH-ключи не найдены в $ssh_dir" >&2
return 1
fi
} }
# Показать ключ или создать его # Установка необходимых пакетов
if read_ssh_pub_key; then need_install() {
echo "Ключ успешно прочитан" msgok "Запрос пароля для установки пакетов"
else sudo apt update
local ALGORITHM="ed25519" check_apt git
ssh-keygen -t $ALGORITHM -f ~/.ssh/id_$ALGORITHM -N "" > /dev/null check_apt zsh
read_ssh_pub_key }
fi
check_apt git install_ohmyzsh() {
# Попробовать склонировать репозиторий git clone https://github.com/ohmyzsh/ohmyzsh.git ~/devTools/.oh-my-zsh
TALIAS_DIR="$HOME/.talias"
if [ $(git clone ssh://git@g.torshes.ru:57322/alex/talias.git $TALIAS_DIR) ]; then msgok "Запрос пароля для смены оболочки на $(which zsh)"
echo ERROR chsh -s $(which zsh)
return 1 }
fi
cat $TALIAS_DIR/README.md public_keys &&
install_galias &&
need_install &&
install_ohmyzsh && msgok "Установка успешно завершена. Требуется перезайти в консоль."