Skip to content

Commit 6828629

Browse files
committed
feat: Add arch4edu
1 parent a200d63 commit 6828629

1 file changed

Lines changed: 49 additions & 2 deletions

File tree

alteriso/setup_3rd_repo.sh

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,17 @@ _blackarch_install() {
7373

7474
}
7575

76+
_arch4edu_install() {
77+
if _has_repo "arch4edu"; then
78+
_msg_warn "arch4edu repository already exists in pacman configuration."
79+
return 0
80+
fi
81+
82+
_arch4edu_install_keyring
83+
_arch4edu_install_pkgs
84+
_arch4edu_apppend_repo
85+
}
86+
7687
_blackarch_install_keyring() {
7788
local _url _version _tarfile="blackarch_keyring-latest.tar.gz"
7889

@@ -133,6 +144,14 @@ _archlinuxcn_install_keyring() {
133144
return 0
134145
}
135146

147+
_arch4edu_install_keyring() {
148+
local _key_id="7931B6D628C8D3BA"
149+
150+
_pacman_key --recv-keys "$_key_id"
151+
_pacman_key --lsign-key "$_key_id"
152+
_pacman_key --finger "$_key_id"
153+
}
154+
136155
_blackarch_install_pkgs() {
137156
# Prepare blackarch-mirrorlist
138157
_blackarch_mirrorlist >"$tmp_dir/blackarch-mirrorlist"
@@ -165,6 +184,22 @@ _archlinuxcn_install_pkgs() {
165184
config_path="$_old_config_path"
166185
}
167186

187+
_arch4edu_install_pkgs() {
188+
# Prepare arch4edu-mirrorlist
189+
_arch4edu_mirrorlist >"$tmp_dir/arch4edu-mirrorlist"
190+
191+
# Prepare arch4edu.conf
192+
local _conf_file="$tmp_dir/arch4edu.conf"
193+
_pacman_conf >"$_conf_file"
194+
_repo_config arch4edu "$tmp_dir/arch4edu-mirrorlist" >>"$_conf_file"
195+
196+
# Install arch4edu-keyring using the temporary config
197+
local _old_config_path="$config_path"
198+
config_path="$_conf_file"
199+
_pacman_S -y arch4edu-keyring arch4edu-mirrorlist
200+
config_path="$_old_config_path"
201+
}
202+
168203
_blackarch_apppend_repo() {
169204
_repo_config blackarch "/etc/pacman.d/blackarch-mirrorlist" >>"/etc/pacman.conf"
170205
}
@@ -209,6 +244,10 @@ _archlinuxcn_apppend_repo() {
209244
_repo_config archlinuxcn "/etc/pacman.d/archlinuxcn-mirrorlist" >>"/etc/pacman.conf"
210245
}
211246

247+
_arch4edu_apppend_repo() {
248+
_repo_config arch4edu "/etc/pacman.d/mirrorlist.arch4edu" >>"/etc/pacman.conf"
249+
}
250+
212251
_blackarch_keyring_latest_files() {
213252
local _ver _urls
214253
_ver=$(_blackarch_keyring_version) || return 1
@@ -228,16 +267,20 @@ _archlinuxcn_mirrorlist() {
228267
curl -fsSL "https://raw.githubusercontent.com/archlinuxcn/mirrorlist-repo/refs/heads/master/archlinuxcn-mirrorlist" | sed 's/^# Server/Server/'
229268
}
230269

270+
_arch4edu_mirrorlist() {
271+
curl -fsSL "https://raw.githubusercontent.com/arch4edu/mirrorlist/refs/heads/master/mirrorlist.arch4edu"
272+
}
273+
231274
_init() {
232-
# Parse flags: -c pacman_config, -r archlinuxcn|blackarch|all, -v, -q
275+
# Parse flags: -c pacman_config, -r archlinuxcn|blackarch|arch4edu|all, -v, -q
233276
while getopts ":c:r:vq" opt; do
234277
case "$opt" in
235278
c)
236279
config_path="$OPTARG"
237280
;;
238281
r)
239282
case "$OPTARG" in
240-
blackarch | archlinuxcn | all)
283+
blackarch | archlinuxcn | arch4edu | all)
241284
target_repo="$OPTARG"
242285
;;
243286
*)
@@ -280,7 +323,11 @@ _main() {
280323
archlinuxcn)
281324
_archlinuxcn_install
282325
;;
326+
arch4edu)
327+
_arch4edu_install
328+
;;
283329
all)
330+
_arch4edu_install
284331
_blackarch_install
285332
_archlinuxcn_install
286333
;;

0 commit comments

Comments
 (0)