From cc1f507ac2c3626cc4af8e049be5f8c8fde745c0 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Mon, 12 Aug 2024 18:38:10 +0200 Subject: [PATCH] More additions to testing setup. --- testing/setup_scripts/setup_desktop.sh | 2 +- testing/setup_scripts/setup_home.sh | 108 +++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 1 deletion(-) create mode 100755 testing/setup_scripts/setup_home.sh diff --git a/testing/setup_scripts/setup_desktop.sh b/testing/setup_scripts/setup_desktop.sh index df8c81c..1947321 100755 --- a/testing/setup_scripts/setup_desktop.sh +++ b/testing/setup_scripts/setup_desktop.sh @@ -7,7 +7,7 @@ get_system_name_arg "$1" # Set up system without user environment. cd "${setup_scripts_dir}" -if [ "$system_name" = "w530" || "$system_name" = "x220"]; then +if [ "$system_name" = "w530" ] || [ "$system_name" = "x220" ]; then ./_setup.sh "${system_name}" "" user desktop thinkpad "${system_name}" else ./_setup.sh "${system_name}" "" user desktop "${system_name}" diff --git a/testing/setup_scripts/setup_home.sh b/testing/setup_scripts/setup_home.sh new file mode 100755 index 0000000..130bbad --- /dev/null +++ b/testing/setup_scripts/setup_home.sh @@ -0,0 +1,108 @@ +#!/bin/sh +set -e +. ./misc.sh + +expect_n_args 1 "(system name)" "$@" +get_system_name_arg "$1" + +cd $setup_scripts_dir +./copy_dirtree.sh "${config_tree_prefix}/home_files" "${HOME}" minimal user "${system_name}" + +# secrets_dev="sdb" +# source_dir_secrets="/media/${secrets_dev}/to_usb" +# target_dir_secrets="${HOME}/tmp_secrets" +# echo "Put secrets drive into slot for /dev/${secrets_dev}." +# while [ ! -e /dev/"${secrets_dev}" ]; do +# sleep 1 +# done +# stty -echo +# printf "Secrets passphrase: " +# read SECRETS_PASS +# stty echo +# echo "" # newline so user knows their input return was accepted +# sudo -v +# echo "${SECRETS_PASS}" | sudo pmount /dev/"${secrets_dev}" +# cp -a "${source_dir_secrets}" "${target_dir_secrets}" +# sudo chown -R plom:plom "${target_dir_secrets}" +# sudo pumount "${secrets_dev}" +# echo "You can remove /dev/${secrets_dev} now." + +# Set up iniitial non-public parts of infrastructure: SSH authentication. +ssh_dir=~/.ssh +cd "${target_dir_secrets}" +mkdir -p "${ssh_dir}" +echo "Setting up .ssh" +cp id_rsa ~/.ssh +stty -echo +ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub +stty echo +eval $(ssh-agent) +ssh-add +ssh-keyscan -H "plomlompom.com" >> ~/.ssh/known_hosts + +# Fill ~/public_repos. +public_repos_dir="${HOME}/public_repos" +repos_list_file="${public_repos_dir}/repos" +mkdir -p "${public_repos_dir}" +cat "${repos_list_file}" | while read line; do + first_char=$(echo "${line}" | cut -c1) + if [ "${first_char}" = "#" ]; then + continue + fi + repo_name="${line}" + if [ ! -d "${public_repos_dir}/${repo_name}" ]; then + cd "${public_repos_dir}" + git clone plom@plomlompom.com:/var/repos/${repo_name} + fi +done + +# Remove redundant config repo copy. +config_tree_prefix="${public_repos_dir}/config/${debian_version}" +rm -rf ~/config + +# # Set up native messenger for tridactyl. +# version='ef9f02d0da258f68d7faf8898707f6d83d90d07a' +# curl -fsSl "https://raw.githubusercontent.com/tridactyl/tridactyl/${version}/native/install.sh" | bash + +# Set up further non-public parts of infrastructure. +cd "${target_dir_secrets}" +script -c 'gpg --import secret_keys.asc' /dev/null +path_borgscript="${config_tree_prefix}//borg.sh" + +# # borg setup +# borgkeys_dir=~/.config/borg/keys +# borgrepos_file=~/.borgrepos +# tar xf borg_keyfiles.tar +# mkdir -p "${borgkeys_dir}" +# mv borg_keyfiles/* "${borgkeys_dir}" +# # Sync org dir via borgbackup. For this we need the borgbackup servers +# # in our .ssh/known_hosts file. +# cat "${borgrepos_file}" | while read line; do +# first_char=$(echo "${line}" | cut -c1) +# if [ "${first_char}" = "#" ]; then +# continue +# fi +# server=$(echo "${line}" | sed 's/.*@//') +# ssh-keyscan "${server}" >> "${ssh_dir}"/known_hosts +# done +# BORG_PASSPHRASE="${SECRETS_PASS}" "${path_borgscript}" orgpull +# +# # .authinfo may not be present on every secrets drive yet +# authinfo_file=.authinfo +# if [ -f "${authinfo_file}" ]; then +# cp "${authinfo_file}" ~ +# fi +# cd +# +# maildir=~/mail/maildir +# # # Set up e-mail system. Note that we only do mbsync if the imap pass file +# # # is found. It may not be present on every secrets drive yet, so we have to +# # # deal with the possibility of it being absent at this point. +# mkdir -p "${maildir}" # expected by mbsync/isync +# if [ -f "${HOME}/${authinfo_file}" ]; then +# mbsync -a +# notmuch new +# fi + +# # Final note on how to integrate tridactyl. +# echo "TODO: As tridactyl user, don't forget to do :source on the first Firefox run, wait a little while (Tridactyl needs to walk through all commands in the .tridactylrc) and then re-start." -- 2.30.2