diff --git a/.local/bin/station-install/install.sh b/.local/bin/station-install/install.sh index 6fdb915..8eb123f 100755 --- a/.local/bin/station-install/install.sh +++ b/.local/bin/station-install/install.sh @@ -1,7 +1,17 @@ #! /bin/bash +echo "Let's get set up" +echo """ + +░▒█▀▀▀█░▀▀█▀▀░█▀▀▄░▀▀█▀▀░▀█▀░▒█▀▀▀█░▒█▄░▒█░░░▒█▀▀▀█░▒█▀▀▀░▀▀█▀▀░▒█░▒█░▒█▀▀█ +░░▀▀▀▄▄░░▒█░░▒█▄▄█░░▒█░░░▒█░░▒█░░▒█░▒█▒█▒█░░░░▀▀▀▄▄░▒█▀▀▀░░▒█░░░▒█░▒█░▒█▄▄█ +░▒█▄▄▄█░░▒█░░▒█░▒█░░▒█░░░▄█▄░▒█▄▄▄█░▒█░░▀█░░░▒█▄▄▄█░▒█▄▄▄░░▒█░░░░▀▄▄▀░▒█░░░ + +""" + "$HOME/.local/bin/install/password.sh" +"$HOME/.local/bin/install/password-manager.sh" "$HOME/.local/bin/install/ssh.sh" -"$HOME/.local/bin/install/dev.sh" +"$HOME/.local/bin/install/server.sh" "$HOME/.local/bin/install/firefox.sh" "$HOME/.local/bin/install/nextcloud.sh" diff --git a/.local/bin/station-install/password-manager.sh b/.local/bin/station-install/password-manager.sh new file mode 100755 index 0000000..ccead24 --- /dev/null +++ b/.local/bin/station-install/password-manager.sh @@ -0,0 +1,33 @@ +#! /bin/bash + +echo "-------------------------------------" +echo "Enpass Setup Script" +echo "-------------------------------------" + +export MASTERPW=$(gum input --header="Enpass Master password" --password) + +echo "https://tower.scarif.space" | wl-copy + +Enpass & + +zenity --title="Enpass Setup" \ + --info \ + --text="Tower URL copied.\nPress OK when it asks for master password" \ + || gum confirm "You closed the dialog, do you want to continue?" \ + || exit 1 + +echo "$MASTERPW" | wl-copy + +read -n 1 -r -s -p $'Press enter when you have synced enpass...\n' + +wl-copy --clear + +CHECKPW=$(enpass-cli -vault="$HOME/.local/share/Enpass/Enpass/Vaults/primary" -sort list 2>&1) + +while [[ "$CHECKPW" == *level=fatal* ]]; do + export MASTERPW=$(gum input --header="Enpass Master password (incorrect, try again)" --password") + CHECKPW=$(enpass-cli -vault="$HOME/.local/share/Enpass/Enpass/Vaults/primary" -sort list) +done + +echo "Password set successfuly" + diff --git a/.local/bin/station-install/password.sh b/.local/bin/station-install/password.sh index 173dcba..4cb896c 100755 --- a/.local/bin/station-install/password.sh +++ b/.local/bin/station-install/password.sh @@ -1,21 +1,22 @@ #! /bin/bash -export MASTERPW=$(gum input --header="Master password" --password) +echo "-------------------------------------" +echo "Password Setup Script" +echo "-------------------------------------" -Enpass & - -echo "$MASTERPW" | wl-copy - -read -n 1 -r -s -p $'Press enter when you have synced enpass...\n' - -wl-copy --clear - -CHECKPW=$(enpass-cli -vault="$HOME/.local/share/Enpass/Enpass/Vaults/primary" -sort list 2>&1) - -while [[ "$CHECKPW" == *level=fatal* ]]; do - export MASTERPW=$(zenity --password) - CHECKPW=$(enpass-cli -vault="$HOME/.local/share/Enpass/Enpass/Vaults/primary" -sort list) -done - -echo "Password set successfuly" +if gum confirm "Do you need to change your password?"; then + while true; do + if passwd; then + echo "Password successfully updated." + break + else + echo "Failed to update password." + if ! gum confirm "Would you like to try again?"; then + break + fi + fi + done +else + echo "Password change skipped." +fi diff --git a/.local/bin/station-install/server.sh b/.local/bin/station-install/server.sh new file mode 100755 index 0000000..17f8eec --- /dev/null +++ b/.local/bin/station-install/server.sh @@ -0,0 +1,84 @@ +#! /bin/bash + +echo "-------------------------------------" +echo "Server Setup Script" +echo "-------------------------------------" + +echo "Extracting login details from enpass" +SCARIF=$(enpass-cli -vault="$HOME/Documents/Enpass/Vaults/primary" -sort show "Scarif space" 2>&1) +LABSUN=$(echo "$LABS" | grep -Po "(?<=Admin login: )\w+") +LABSPW=$(enpass-cli -vault="$HOME/Documents/Enpass/Vaults/primary" -sort pass "Scarif: Labs") + +SSHPATH="$HOME/.ssh/id_ed25519" # The path to the SSH key file +TITLE="$USER@$(cat /etc/hostname)" # The title for the SSH key + +echo "---" +echo "Generating the SSH key if it does not exist" +[ ! -f $SSHPATH ] && ssh-keygen -t ed25519 -f "$SSHPATH" -N "" -q + +KEY=$(cat "$SSHPATH.pub") + +# A method to generate the parameters for creating an SSH key on gitea +generate_post_data() { + cat <&1) LABSUN=$(echo "$LABS" | grep -Po "(?<=login: )\w+") LABSPW=$(enpass-cli -vault="$HOME/Documents/Enpass/Vaults/primary" -sort pass "Scarif: Labs") @@ -10,7 +12,8 @@ LABSPW=$(enpass-cli -vault="$HOME/Documents/Enpass/Vaults/primary" -sort pass "S SSHPATH="$HOME/.ssh/id_ed25519" # The path to the SSH key file TITLE="$USER@$(cat /etc/hostname)" # The title for the SSH key -echo "Generate the SSH key if it does not exist" +echo "~~~~~~~~" +echo "Generating the SSH key if it does not exist" [ ! -f $SSHPATH ] && ssh-keygen -t ed25519 -f "$SSHPATH" -N "" -q KEY=$(cat "$SSHPATH.pub") @@ -34,6 +37,8 @@ KEYS=$(curl -X GET -s -S --url "$KEYS_URL") KEY_EXISTS=$(echo $KEYS | jq --arg TITLE "$TITLE" 'map(.title|ascii_downcase)|contains([$TITLE|ascii_downcase])') +echo "~~~~~~~~" +echo "Checking if the key exists on the server" if [[ $KEY_EXISTS == true ]]; then echo "Found keys with the same title as this machine." # Extract the ids of the keys with the same title as this machine @@ -53,6 +58,7 @@ if [[ $KEY_EXISTS == true ]]; then fi fi +echo "~~~~~~~~" echo "Saving the new key" curl -X POST \ -s -S \ @@ -72,6 +78,7 @@ for dir in "$HOME/.local/nixos"; do fi done +echo "~~~~~~~~" echo "Replacing remote URL to use SSH key" DOTFILES_SSH_URL=$(git --git-dir "$HOME/.config/dotfiles/.git" --work-tree="$HOME" remote get-url origin | sed "$HTTP_REPLACE") git --git-dir "$HOME/.config/dotfiles/.git" --work-tree="$HOME" remote set-url origin "$DOTFILES_SSH_URL"