-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommon.sh
More file actions
executable file
·110 lines (96 loc) · 2.36 KB
/
common.sh
File metadata and controls
executable file
·110 lines (96 loc) · 2.36 KB
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
#!/bin/bash
readonly USER_NAME=george
readonly DISPLAY_NAME='George Kramer'
readonly GIT_NAME="${DISPLAY_NAME}"
readonly GIT_EMAIL=george.kramer@live.com
readonly GIT_EDITOR=vim
readonly TIMEZONE=America/Los_Angeles
readonly HOST_NAME=prowsw880acese
readonly LOCALE=en_US.UTF-8
readonly KEY_MAP=us
readonly COUNTRY_MIRROR='United States'
readonly LUKS_NAME=cryptlvm
readonly VG_NAME=vg0
readonly LV_ROOT=root
readonly LV_HOME=home
readonly LV_SWAP=swap
readonly ZFS_LUKS_NAME=cryptdata
readonly ZFS_POOL=data
readonly ZFS_ARC_MAX=17179869184
readonly ZFS_MOUNT=/data
readonly SBCTL_KEYS_DIR=/var/lib/sbctl/keys
readonly -a SBCTL_KEY_FILES=(
PK/PK.key
PK/PK.pem
KEK/KEK.key
KEK/KEK.pem
db/db.key
db/db.pem
)
die() {
echo "ERROR: ${1}" >&2
exit 1
}
warn() {
echo "WARNING: ${1}" >&2
}
has_partition_table() {
blkid -p -s PTTYPE -o value "${1}" &> /dev/null
}
get_partition_dev() {
local block_dev="${1}" part_num="${2}"
if [[ "${block_dev}" =~ ^/dev/nvme ]]; then
echo "${block_dev}p${part_num}"
else
echo "${block_dev}${part_num}"
fi
}
run_as_root() {
if [[ "${EUID}" -eq 0 ]]; then
"${@}"
else
sudo "${@}"
fi
}
require_root() {
if [[ "${EUID}" -ne 0 ]]; then
die "Required to run as root or with sudo."
fi
}
_pacman() { run_as_root pacman "${@}"; }
pacman_install() { _pacman -Syu --needed --noconfirm "${@}"; }
pacman_remove() { _pacman --noconfirm -Rdd "${@}"; }
pacman_remove_all() { _pacman --noconfirm -Rns "${@}"; }
pacman_list_orphans() { _pacman -Qdtq 2>/dev/null || true; }
pacman_clean_cache() { _pacman -Sc --noconfirm; }
aur_install() { yay -Syu --needed --noconfirm "${@}"; }
manual_aur_install() {
local git_url="${1}"
shift
local temp_dir
temp_dir="$(mktemp -d)"
git clone "${git_url}" "${temp_dir}"
pushd "${temp_dir}" || exit
makepkg --noconfirm -sri "${@}"
popd || exit
rm -rf "${temp_dir}"
}
run_scripts() {
local base_dir="${1}"
shift
local name
for name in "${@}"; do
local script="${base_dir}/${name}.sh"
if [[ ! -e "${script}" ]]; then
script="${base_dir}/${name}/install.sh"
fi
"${script}"
done
}
gpg_import_key() {
gpg --recv-keys "${1}"
}
pacman_import_key() {
run_as_root pacman-key --recv-keys "${1}"
run_as_root pacman-key --lsign-key "${1}"
}