+set -e
+. ./_misc.sh
+
+PATH_REPOS="${HOME}/repos"
+PATH_BORGKEYS="${HOME}/.config/borg/keys"
+REPOS_SITE_DOMAIN=plomlompom.com
+REMOTE_PATH_REPOS=/var/repos
+NAME_BORGAPP=borgplom
+if [ ! -z "$1" ]; then
+ export BORG_PASSPHRASE="$1"
+fi
+
+abort_if_not_user "${USERNAME}"
+abort_if_offline
+abort_if_exists "${PATH_USER_SSH}"
+abort_if_exists "${PATH_REPOS}"
+abort_if_exists "${PATH_BORGKEYS}"
+
+echo "\nSetting up ~/.ssh"
+PATH_PRIVATE_KEY="${PATH_USER_SSH}/${FILENAME_PRIVATE_KEY}"
+PATH_PUBLIC_KEY="${PATH_USER_SSH}/${FILENAME_PUBLIC_KEY}"
+mkdir -p "${PATH_USER_SSH}"
+cp "${PATH_SECRETS}/${FILENAME_PRIVATE_KEY}" "${PATH_PRIVATE_KEY}"
+while [ ! -s "${PATH_PUBLIC_KEY}" ]; do
+ set +e
+ stty -echo
+ ssh-keygen -y -f "${PATH_PRIVATE_KEY}" > "${PATH_PUBLIC_KEY}"
+ stty echo
+ set -e
+done
+PATH_KNOWN_HOSTS="${PATH_USER_SSH}/known_hosts"
+
+echo "\n\nSetting up ~/repos"
+REPOS_SITE_LOGIN="${USERNAME}@${REPOS_SITE_DOMAIN}"
+eval $(ssh-agent) && ssh-add
+ssh-keyscan "${REPOS_SITE_DOMAIN}" >> "${PATH_KNOWN_HOSTS}"
+mkdir "${PATH_REPOS}"
+cd "${PATH_REPOS}"
+ssh ${REPOS_SITE_LOGIN} "cd $REMOTE_PATH_REPOS && ls -1" | while read REPO_NAME; do
+ git clone --recurse "${REPOS_SITE_LOGIN}:${REMOTE_PATH_REPOS}/${REPO_NAME}"
+done
+
+echo "\nSetting up borg and pull in ~/org"
+PATH_TARED_KEYS=borg_keyfiles
+mkdir -p "${PATH_BORGKEYS}"
+tar xf "${PATH_SECRETS}/${PATH_TARED_KEYS}.tar"
+mv "${PATH_TARED_KEYS}"/* "${PATH_BORGKEYS}/"
+rmdir "${PATH_TARED_KEYS}"
+ls -1 "${PATH_BORGKEYS}/" | while read FILENAME; do
+ SERVER_NAME=$(echo "${FILENAME}" | sed 's/.*@//')
+ set +e
+ ssh-keyscan "${SERVER_NAME}" >> "${PATH_KNOWN_HOSTS}"
+ set -e
+done
+while true; do
+ set +e
+ "${NAME_BORGAPP}" orgpull
+ RESULT=$?
+ set -e
+ if [ "${RESULT}" = "0" ]; then
+ break
+ elif [ "${RESULT}" != "2" ]; then
+ echo "Aborting due to unexpected ${NAME_BORGAPP} error."
+ exit 1
+ fi
+done
+
+PATH_REL_DEL_REPO="DELETE_${PATH_REL_REPO}"
+mv "${HOME}/${PATH_REL_REPO}" "${HOME}/${PATH_REL_DEL_REPO}"
+echo "\nWith ~/repos set up, new reference be ~/repos/${PATH_REL_REPO}; moved ~/${PATH_REL_REPO} to ~/${PATH_REL_DEL_REPO}, ready to be deleted by you."