diff options
Diffstat (limited to 'spec.org')
| -rw-r--r-- | spec.org | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/spec.org b/spec.org new file mode 100644 index 0000000..9cbaf11 --- /dev/null +++ b/spec.org @@ -0,0 +1,103 @@ + +ArchSetup Specification + +This setup should allow the user to: +- run a command from the live iso to start installation +- run a command from the live iso to setup the ssh server for remote install + +- tools to manage their dotfiles + - see what's changed and reject or commit changes to the repository + - easily adopt new dotfiles into the setup + +* Workflows / Use Cases +** Install Arch Linux +*** Kick off the init file via curl +To create a new arch linux workstation, + +boot from any Arch Linux iso burned on a flash drive. + +issue the command +"curl -s https://cjennings.net/archsetup/init | sh" +... and have the process should begin. +**** TODO Figure out what needs to occur for this to happen. + +*** Init +- ask the user if they wish to setup archlinux or setup ssh +- if response not "arch" or "ssh", error and stop. + +#+begin_src shell + echo "Do you wish to setup archlinux or setup ssh? " + read setup + + if [ "$setup" = "arch" ]; then + echo "Setting up Arch Linux..." + # Call arch setup script + sh /path/to/archlinux_setup_script.sh + + elif [ "$setup" = "ssh" ]; then + setup_ssh # function below + + else + echo "Error: Unknown setup option. Please choose 'arch' or 'ssh'." + exit 1 + fi + +#+end_src + +*** Prepare SSH +- change root user password to welcome +- make sure ssh server is setup +- find the hostname +- report back to the user with the root@ip and root@hostname prompt to use. + +#+begin_src shell + setup_ssh () { + systemctl start sshd + + echo "root:welcome" | chpasswd + hostname=$(</etc/hostname) + ipaddress=$(ip addr show wlan0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1) + + echo ""; echo ""; echo "init complete. " + echo "you may ssh root@$hostname or ssh root@$ipaddress using the password 'welcome'" + } +#+end_src + +*** Installation +- +- ask user which drive to install on + - display all the drives and have the user choose one + - report the partitions and sizes, and confirm. + - use wipe and discard to make sure the + + +** Updating Dotfiles + + +** Makefile + +I need a GNU Makefile that does the following: + +when "make stow" is called: +- delete the file at $HOME/.zshrc_history +- run the command "stow --restow --no-folding system" + +when "make t-export" is called: +- run the command "tar -jcvf thunderbird-email-profile.tar.bz2 $HOME/.thunderbird" +- verify that thunderbird-email-profile.tar.bz2 exists. halt with an error if it doesn't exist. +- copy thunderbird-email-profile.tar.bz2 to the current directory. +- run the command "gpg -c thunderbird-email-profile.tar.bz2" +- run the command "rm thunderbird-email-profile.tar.bz2" + +when "make t-restore" is called: +- verify that thunderbird-email-profile.tar.bz2 exists. halt with an error if it doesn't exist. +- run the command gpg thunderbird-email-profile.tar.bz2.gpg +- + + +when "make arch" is called: +- run "git pull origin main" +- run "sh $(pwd)archsetup" + +when make "make commit" is called +- run |
