Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
e17b84f4a0 | |||
4718c88229 | |||
d1ddaaf06a
|
|||
9484fff9f8 | |||
1e2e5f44e1
|
|||
764d47ad8f
|
@@ -19,10 +19,12 @@ rootfs:
|
||||
s6: []
|
||||
|
||||
# optional
|
||||
# livefs:
|
||||
# packages: []
|
||||
# packages-init:
|
||||
# dinit: []
|
||||
# openrc: []
|
||||
# runit: []
|
||||
# s6: []
|
||||
livefs:
|
||||
packages: []
|
||||
# optional
|
||||
packages-init:
|
||||
dinit: []
|
||||
openrc: []
|
||||
runit: []
|
||||
s6: []
|
||||
|
||||
|
@@ -43,6 +43,8 @@ load_profile(){
|
||||
|
||||
HAS_LIVE=$(yq -P '. | has("livefs")' "$profile_yaml")
|
||||
|
||||
HAS_LIVE_INIT=$(yq -P '.livefs | has("packages-init")' "$profile_yaml")
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -51,6 +53,7 @@ load_pkgs(){
|
||||
|
||||
local common_base
|
||||
local common_apps
|
||||
local common_misc
|
||||
local common_xorg
|
||||
local common_boot
|
||||
local common_init
|
||||
@@ -70,12 +73,12 @@ load_pkgs(){
|
||||
msg2 "Loading Packages: [%s] ..." "common.packages-base"
|
||||
mapfile -t common_base < <(yq -P '.packages-base[]' "$common_yaml")
|
||||
|
||||
msg2 "Loading Packages: [%s] ..." "common.packages-apps"
|
||||
mapfile -t common_apps < <(yq -P '.packages-apps[]' "$common_yaml")
|
||||
|
||||
msg2 "Loading Packages: [%s] ..." "common.packages-init.${INITSYS}"
|
||||
mapfile -t common_init < <(common_key_init="$common_key_init" yq -P 'eval(strenv(common_key_init))' "$common_yaml")
|
||||
|
||||
msg2 "Loading Packages: [%s] ..." "common.packages-apps"
|
||||
mapfile -t common_apps < <(yq -P '.packages-apps[]' "$common_yaml")
|
||||
|
||||
if "${HAS_LIVE}"; then
|
||||
if ${USE_XLIBRE}; then
|
||||
msg2 "Loading Packages: [%s] ..." "common.packages-xlibre"
|
||||
@@ -84,6 +87,9 @@ load_pkgs(){
|
||||
msg2 "Loading Packages: [%s] ..." "common.packages-xorg"
|
||||
mapfile -t common_xorg < <(yq -P '.packages-xorg[]' "$common_yaml")
|
||||
fi
|
||||
|
||||
msg2 "Loading Packages: [%s] ..." "common.packages-misc"
|
||||
mapfile -t common_misc < <(yq -P '.packages-misc[]' "$common_yaml")
|
||||
fi
|
||||
|
||||
msg2 "Loading Packages: [%s] ..." "rootfs.packages"
|
||||
@@ -94,32 +100,22 @@ load_pkgs(){
|
||||
|
||||
packages+=(
|
||||
"${common_base[@]}"
|
||||
"${common_apps[@]}"
|
||||
"${common_init[@]}"
|
||||
"${common_apps[@]}"
|
||||
"${packages_root[@]}"
|
||||
"${packages_root_init[@]}"
|
||||
"${common_xorg[@]}"
|
||||
"${common_misc[@]}"
|
||||
)
|
||||
|
||||
if "${HAS_LIVE}"; then
|
||||
packages+=(
|
||||
"${common_xorg}"
|
||||
)
|
||||
fi
|
||||
|
||||
for svc in "${SERVICES[@]}"; do
|
||||
case "$svc" in
|
||||
sddm|gdm|lightdm|mdm|greetd|lxdm|xdm)
|
||||
display_manager="$svc"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
livefs)
|
||||
msg2 "Loading Packages: [%s] ..." "livefs.packages"
|
||||
mapfile -t packages_live < <(yq -P '.livefs.packages[]' "$profile_yaml")
|
||||
|
||||
msg2 "Loading Packages: [%s] ..." "livefs.packages-init.${INITSYS}"
|
||||
mapfile -t packages_live_init < <(live_key_init="$live_key_init" yq -P 'eval(strenv(live_key_init))' "$profile_yaml")
|
||||
if "${HAS_LIVE_INIT}"; then
|
||||
msg2 "Loading Packages: [%s] ..." "livefs.packages-init.${INITSYS}"
|
||||
mapfile -t packages_live_init < <(live_key_init="$live_key_init" yq -P 'eval(strenv(live_key_init))' "$profile_yaml")
|
||||
fi
|
||||
|
||||
packages+=(
|
||||
"${packages_live[@]}"
|
||||
|
@@ -10,6 +10,8 @@ add_svc_openrc(){
|
||||
if [[ -f $mnt/etc/init.d/$svc ]];then
|
||||
msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
|
||||
chroot "$mnt" rc-update add "$svc" "$rlvl" &>/dev/null
|
||||
else
|
||||
warning "Service %s not found. Skipping." "$svc"
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -23,6 +25,8 @@ add_user_svc_openrc(){
|
||||
chroot "$mnt" mkdir -p /home/"${LIVEUSER}/$rc"
|
||||
chroot "$mnt" ln -s /etc/user/init.d/"$svc" /home/"${LIVEUSER}/$rc/$svc"
|
||||
chroot "$mnt" chown -R "${LIVEUSER}:${LIVEUSER}" /home/"${LIVEUSER}"/.config/rc
|
||||
else
|
||||
warning "Service %s not found. Skipping." "$svc"
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -33,20 +37,36 @@ add_svc_runit(){
|
||||
if [[ -d $mnt/etc/runit/sv/$svc ]]; then
|
||||
msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
|
||||
chroot "$mnt" ln -s /etc/runit/sv/"$svc" /etc/runit/runsvdir/"$rlvl" &>/dev/null
|
||||
else
|
||||
warning "Service %s not found. Skipping." "$svc"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
add_svc_s6(){
|
||||
local mnt="$1" rlvl="${2:-default}" dep
|
||||
local display_manager
|
||||
local supported_dms=(sddm gdm lightdm mdm greetd lxdm xdm)
|
||||
|
||||
for dm in "${supported_dms[@]}"; do
|
||||
if in_array "$dm" "${SERVICES[@]}"; then
|
||||
display_manager="$dm"
|
||||
fi
|
||||
done
|
||||
|
||||
dep="$mnt"/etc/s6/sv/"$display_manager"-srv/dependencies.d
|
||||
|
||||
for svc in "${SERVICES[@]}"; do
|
||||
msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
|
||||
chroot "$mnt" s6-service add "$rlvl" "$svc"
|
||||
if [[ "$svc" == "$display_manager" ]]; then
|
||||
if [[ -d "$dep" ]]; then
|
||||
touch "$dep"/artix-live
|
||||
if [[ -d "$mnt"/etc/s6/sv/"$svc" ]] || [[ -d "$mnt"/etc/s6/sv/"$svc"-srv ]]; then
|
||||
chroot "$mnt" s6-service add "$rlvl" "$svc"
|
||||
if [[ "$svc" == "$display_manager" ]]; then
|
||||
if [[ -d "$dep" ]]; then
|
||||
touch "$dep"/artix-live
|
||||
fi
|
||||
fi
|
||||
else
|
||||
warning "Service %s not found. Skipping." "$svc"
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -63,9 +83,11 @@ add_svc_s6(){
|
||||
add_svc_dinit(){
|
||||
local mnt="$1"
|
||||
for svc in "${SERVICES[@]}"; do
|
||||
if [[ -d $mnt/etc/dinit.d/boot.d ]]; then
|
||||
if [[ -f "$mnt"/etc/dinit.d/"$svc" ]]; then
|
||||
msg2 "Setting %s: [%s]" "${INITSYS}" "$svc"
|
||||
chroot "$mnt" dinitctl enable -o "$svc" &>/dev/null
|
||||
else
|
||||
warning "Service %s not found. Skipping." "$svc"
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -79,6 +101,8 @@ add_user_svc_dinit(){
|
||||
chroot "$mnt" mkdir -p "$usr_sv"/boot.d
|
||||
chroot "$mnt" ln -s /etc/dinit.d/user/"$svc" "$usr_sv"/boot.d/"$svc"
|
||||
chroot "$mnt" chown -R "${LIVEUSER}:${LIVEUSER}" "$usr_sv"
|
||||
else
|
||||
warning "Service %s not found. Skipping." "$svc"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
Reference in New Issue
Block a user