blob: 414dc68df4571a35617f0ed315bb4c91ad43e1e5 (
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
#!/bin/bash
# archinstall - A minimal Installation Script for Arch Linux
# Copyright (C) 2019 xengineering
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#################################################################
# _ _ _ _ _ #
# __ _ _ __ ___| |__ (_)_ __ ___| |_ __ _| | | ___| |__ #
# / _` | '__/ __| '_ \| | '_ \/ __| __/ _` | | | / __| '_ \ #
# | (_| | | | (__| | | | | | | \__ \ || (_| | | |_\__ \ | | | #
# \__,_|_| \___|_| |_|_|_| |_|___/\__\__,_|_|_(_)___/_| |_| #
# #
#################################################################
# Static config
TESTSERVER="8.8.8.8" # hostnames will not work properly
LOG_FILE_PATH="/var/log/archinstall.log"
REPOSITORY_URL="https://github.com/xengineering/archinstall/"
REPOSITORY_PATH="/opt/archinstall.git"
BRANCH_OR_COMMIT="master"
SCRIPT_BASE_PATH=$REPOSITORY_PATH
SCRIPT_BASE_PATH+="/bin/"
CONFIG_FILE_FOLDER_PATH="/etc/archinstall/"
CONFIG_FILE_PATH=$CONFIG_FILE_FOLDER_PATH
CONFIG_FILE_PATH+="config.json"
DELAY=0.5
# Initial message
cat << EOF
#################################################################
# #
# Arch Linux Installation Script #
# #
# archinstall Copyright (C) 2019 xengineering #
# This program comes with ABSOLUTELY NO WARRANTY. #
# This is free software, and you are welcome to redistribute it #
# under certain conditions. See #
# <https://www.gnu.org/licenses/gpl-3.0.en.html> for details. #
# #
#################################################################
EOF
# Create log and provide output function ...
touch $LOG_FILE_PATH
echo "" > $LOG_FILE_PATH
output () {
echo $1 | tee -a $LOG_FILE_PATH
echo "" | tee -a $LOG_FILE_PATH
sleep $DELAY
}
output "Log created - OK"
output "Checking if booted with UEFI ..."
if [ -d "/sys/firmware/efi/efivars" ]; then
output "Booted with UEFI - OK"
else
output "Not booted with UEFI. Please enable it in your mainboard settings. - FAILED"
exit
fi
output "Check internet connection ..."
if ping -w 3 -c 1 $TESTSERVER > /dev/null; then
output "Internet connection is ready - OK"
else
output "Could not reach testserver '$TESTSERVER' - FAILED"
exit
fi
output "Update system clock ..."
timedatectl set-ntp true
if [ $? -eq 0 ]; then
output "Updated system clock - OK"
else
output "Could not update system clock - FAILED"
exit
fi
output "Cloning git repository ..."
pacman --noconfirm -Sy git | tee -a $LOG_FILE_PATH
mkdir $REPOSITORY_PATH
git clone $REPOSITORY_URL $REPOSITORY_PATH | tee -a $LOG_FILE_PATH
cd $REPOSITORY_PATH && git checkout $BRANCH_OR_COMMIT | tee -a $LOG_FILE_PATH
cd
output "Git repository cloned - OK"
output "Generating config ..."
script_path=$SCRIPT_BASE_PATH
script_path+="config_writer.py"
mkdir $CONFIG_FILE_FOLDER_PATH
touch $CONFIG_FILE_PATH
python $script_path $LOG_FILE_PATH $CONFIG_FILE_PATH
output "Generated config - OK"
# Generate new system ...
# Copy everything to new system
# log
# repo
# config
# Unmount new system
|