blob: 9cbaf11e557f190bc552a05626699ffb0431ec1c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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
|