#!/bin/sh # # bash -c "$(curl -fsSL http://kleku.satanic.mobi/pub/home)" # # bash -c "$(wget http://kleku.satanic.mobi/pub/home -O -)" # # sh -c "$(fetch -o - http://kleku.satanic.mobi/pub/home)" #set -x export RUNZSH=no export KEEP_ZSHRC=yes # URL do pliku z kluczami URL="http://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