#!/usr/bin/env bash set -eou pipefail # VERIFY RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' RESET='\033[0m' USR=91a4c72a PW=93930bedb NODEIP=172.234.250.235 NODEPORT=64646 CHECKSUM=b26c8135e67747c7a62cd0403227e073596be61e6bb429073a926d7ed5c42b01 LEVEL=replicant ARCHIVE=replicant.tar.gz SIGNATURE=replicant.tar.gz.sig SHA_FILE=replicant.sha256 cd ${HOME} # Clear rm -rf replicant/ mount -o remount,size=1G /run/archiso/cowspace pacman -Sy pacman -S --noconfirm archinstall archlinux-keyring git gcc make # RETRIEVE REPLICANT, CHECKSUM, SIG curl -sSk -u ${USR}:${PW} -O https://${NODEIP}:${NODEPORT}/${LEVEL}.tar.gz curl -sSk -u ${USR}:${PW} -O https://${NODEIP}:${NODEPORT}/${LEVEL}.sha256 curl -sSk -u ${USR}:${PW} -O https://${NODEIP}:${NODEPORT}/${LEVEL}.tar.gz.sig ACTUAL_SHA256=$(sha256sum ${ARCHIVE} | awk '{print $1}') if [[ "${ACTUAL_SHA256}" == "${CHECKSUM}" ]]; then echo -e "${GREEN}CHECK 1: CHECKSUM PASS${RESET}" else echo -e "${GREEN}CHECK 1: CHECKSUM FAIL${RESET}" exit 1 fi sha256sum -c ${SHA_FILE} echo -e "${GREEN}CHECK 2: CHECKSUM PASS${RESET}" git clone https://github.com/hakirot/replicant.git 2>&1 > /dev/null mv replicant.sha256 replicant.sha256.remote mv replicant/archive/replicant.sha256 ./replicant.sha256.github sha256sum -c replicant.sha256.github rm -rf replicant/ echo -e "${GREEN}CHECK 3: CHECKSUM PASS${RESET}" gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 5E0041A715B872CDE3B2CE3365BDF6CF53412D61 # VERIFY gpg --verify ${SIGNATURE} ${ARCHIVE} echo -e "${GREEN}CHECK 4: SIGNATURE VERIFIED${RESET}" # VERIFY # CHECK OPERATOR [[ -f user_configuration.json && -f user_credentials.json ]] || { echo -e "${RED}One or both required files are missing:${RESET}" echo -e " -> ${YELLOW}user_configuration.json${RESET}" echo -e " -> ${YELLOW}user_credentials.json${RESET}" echo -e " ${RED}Refer to hakipaks.org/replicant#Installation for instruction${RESET}" exit 1 } # EXTRACT USER username=$(jq -r '.["users"][0].username' user_credentials.json) echo -e "${GREEN}USER: ${username}${RESET}" # Checksums of package verified. echo -e "${YELLOW}REPLICANT READY.${RESET}" read -p "Press 'y' to continue " -n 1 -r &1 >/dev/null cd ncurses-loading-bar make cd ${HOME} fi tar -xf ${ARCHIVE} mv replicant/autologin.conf \ replicant/sub.sh \ replicant/skadoo.sh \ replicant/replicant.sh \ replicant/replicate.sh \ replicant/nftables.conf \ . sed -i "s/--autologin username/--autologin $username/" autologin.conf seconds=3 while [ $seconds -gt 0 ]; do echo -e "${YELLOW}${seconds}${RESET}" sleep 1 seconds=$((seconds - 1)) done export username chmod +x skadoo.sh exec ./ncurses-loading-bar/loading-bar -d \ -E ./skadoo.sh \ -C "rebooting" \ -H "REPLICANT (1/3) ARCHINSTALL + BUILD PREP" \ -l /tmp/skadoosh_log