@@ -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