#!/bin/sh
#
# bash -c "$(curl -fsSL https://kleku.satanic.mobi/pub/home)"
#
# bash -c "$(wget https://kleku.satanic.mobi/pub/home -O -)"
#
# sh -c "$(fetch -o - https://kleku.satanic.mobi/pub/home)"
#set -x
export RUNZSH=no
export KEEP_ZSHRC=yes
# URL do pliku z kluczami
URL="https://kleku.satanic.mobi/pub/ssh/authorized_keys"
# Ścieżka do lokalnego pliku authorized_keys
AUTH_KEYS="$HOME/.ssh/authorized_keys"
# Funkcja sprawdzająca dostępność URL
check_url() {
if curl --output /dev/null --silent --head --fail "$URL"; then
return 0
else
return 1
fi
}
# Funkcja sprawdzająca, czy klucz już istnieje
check_key_exists() {
local key="$1"
if [ -f "$AUTH_KEYS" ] && grep -Fx "$key" "$AUTH_KEYS" > /dev/null; then
return 0
else
return 1
fi
}
# Główna logika skryptu
main() {
# Sprawdzenie, czy URL istnieje
if ! check_url; then
echo "Błąd: Nie można połączyć się z $URL"
exit 1
fi
# Pobranie kluczy z URL
keys=$(curl -s "$URL")
if [ -z "$keys" ]; then
echo "Błąd: Pobrany plik jest pusty"
exit 1
fi
# Utworzenie katalogu .ssh jeśli nie istnieje
mkdir -p "$HOME/.ssh"
chmod 700 "$HOME/.ssh"
# Utworzenie pliku authorized_keys jeśli nie istnieje
touch "$AUTH_KEYS"
chmod 600 "$AUTH_KEYS"
# Przetwarzanie kluczy linia po linii
while IFS= read -r key; do
# Pomijanie pustych linii
[ -z "$key" ] && continue
# Sprawdzenie, czy klucz już istnieje
if ! check_key_exists "$key"; then
echo "$key" >> "$AUTH_KEYS"
echo "Dodano klucz: $key"
else
echo "Klucz już istnieje: $key"
fi
done <<< "$keys"
echo "Operacja zakończona"
}
# Uruchomienie głównej funkcji
main
cd
[ ! -d ".oh-my-zsh" ] && sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
[ ! -d "bin" ] && mkdir bin
cd ~/bin
mv .zshrc .zshrc.bak
#mv .bashrc .bashrc.bak
mv .tmux.conf .tmux.conf.bak
wget kleku.satanic.mobi/.zshrc
#wget kleku.satanic.mobi/.bashrc
wget kleku.satanic.mobi/.tmux.conf
cd
mv .zshrc .zshrc.bak
#mv .bashrc .bashrc.bak
mv .tmux.conf .tmux.conf.bak
ln -s bin/.zshrc
#ln -s bin/.bashrc
ln -s bin/.tmux.conf
#if [ -n "`$SHELL -c 'echo $ZSH_VERSION'`" ]; then
# # assume Zsh
# . ~/.zshrc
#elif [ -n "`$SHELL -c 'echo $BASH_VERSION'`" ]; then
# # assume Bash
# . ~/.bashrc
#else
# # assume something else
# echo $SHELL
#fi