Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c739323aa3 | |||
| 403ee87eb8 | |||
| 120c90e792 | |||
| 364488f9c0 | |||
| 7cbeea9e22 | |||
| 713270fac7 | |||
| 259a9121d5 | |||
| c8b73a2d82 | |||
| 7a89bc24d8 | |||
| 8d8534397d | |||
| 1708f18261 | |||
| d99b446c65 | |||
| 3208c76259 | |||
| e9a86351e3 | |||
| 5aa8a8b65e |
12
README.md
12
README.md
@@ -1,10 +1,12 @@
|
||||
# Запустить удалённый скрипт:
|
||||
## wget
|
||||
```
|
||||
wget -qO - https://g.torshes.ru/alex/galias-d/raw/branch/main/galias-d.sh | bash
|
||||
```
|
||||
|
||||
## 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
130
galias-d.sh
Normal file → Executable file
@@ -2,50 +2,104 @@
|
||||
|
||||
# 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() {
|
||||
sudo apt install $1 -y
|
||||
}
|
||||
|
||||
read_ssh_pub_key() {
|
||||
local ssh_dir="$HOME/.ssh"
|
||||
local pub_key
|
||||
|
||||
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
|
||||
# Скачать galias для установки
|
||||
install_galias() {
|
||||
git clone ssh://git@g.torshes.ru:57322/self-settings/galias.git ~/devTools/.galias
|
||||
ln -s ~/devTools/.galias/.zshrc ~/.zshrc
|
||||
}
|
||||
|
||||
# Показать ключ или создать его
|
||||
if read_ssh_pub_key; then
|
||||
echo "Ключ успешно прочитан"
|
||||
else
|
||||
local ALGORITHM="ed25519"
|
||||
ssh-keygen -t $ALGORITHM -f ~/.ssh/id_$ALGORITHM -N "" > /dev/null
|
||||
read_ssh_pub_key
|
||||
fi
|
||||
# Установка необходимых пакетов
|
||||
need_install() {
|
||||
msgok "Запрос пароля для установки пакетов"
|
||||
sudo apt update
|
||||
check_apt git
|
||||
check_apt zsh
|
||||
}
|
||||
|
||||
check_apt git
|
||||
# Попробовать склонировать репозиторий
|
||||
TALIAS_DIR="$HOME/.talias"
|
||||
if [ $(git clone ssh://git@g.torshes.ru:57322/alex/talias.git $TALIAS_DIR) ]; then
|
||||
echo ERROR
|
||||
return 1
|
||||
fi
|
||||
install_ohmyzsh() {
|
||||
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/devTools/.oh-my-zsh
|
||||
|
||||
cat $TALIAS_DIR/README.md
|
||||
msgok "Запрос пароля для смены оболочки на $(which zsh)"
|
||||
chsh -s $(which zsh)
|
||||
}
|
||||
|
||||
public_keys &&
|
||||
install_galias &&
|
||||
need_install &&
|
||||
install_ohmyzsh && msgok "Установка успешно завершена. Требуется перезайти в консоль."
|
||||
Reference in New Issue
Block a user