Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
01e45fd5fd | ||
![]() |
a795484c7b | ||
![]() |
e099003b31 | ||
![]() |
dbec8ba9ad | ||
![]() |
b35754ecce | ||
![]() |
91cdece50d |
7
Makefile
7
Makefile
@@ -49,13 +49,10 @@ PATCHES = \
|
||||
|
||||
BIN_ISO = \
|
||||
bin/buildiso \
|
||||
bin/deployiso \
|
||||
bin/buildyaml
|
||||
bin/deployiso
|
||||
|
||||
LIBS_ISO = \
|
||||
$(wildcard lib/util-iso*.sh) \
|
||||
$(wildcard lib/util-yaml*.sh) \
|
||||
lib/util-profile.sh
|
||||
$(wildcard lib/util-iso*.sh)
|
||||
|
||||
SHARED_ISO = \
|
||||
data/mkinitcpio.conf \
|
||||
|
@@ -24,6 +24,8 @@ prepare_build(){
|
||||
|
||||
load_profile "${profile}"
|
||||
|
||||
netgroups=${netgroups_url}/netgroups-${initsys}.yaml
|
||||
|
||||
local pac_arch='default' pacman_conf pac_conf
|
||||
[[ "${target_arch}" == 'x86_64' ]] && pac_arch='lib32'
|
||||
|
||||
@@ -54,7 +56,7 @@ show_profile(){
|
||||
if ${verbose};then
|
||||
msg2 "autologin: %s" "${autologin}"
|
||||
|
||||
msg2 "netgroups: %s" "$(get_yaml)"
|
||||
msg2 "netgroups: %s" "${netgroups}"
|
||||
|
||||
msg2 "hostname: %s" "${hostname}"
|
||||
msg2 "username: %s" "${username}"
|
||||
|
107
bin/buildyaml.in
107
bin/buildyaml.in
@@ -1,107 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# 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; version 2 of the License.
|
||||
#
|
||||
# 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.
|
||||
|
||||
version=@version@
|
||||
|
||||
LIBDIR='@libdir@'
|
||||
DATADIR='@datadir@'
|
||||
SYSCONFDIR='@sysconfdir@'
|
||||
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-yaml-check.sh
|
||||
import ${LIBDIR}/util-profile.sh
|
||||
|
||||
show_profile(){
|
||||
msg2 "yaml_dir: %s" "${yaml_dir}"
|
||||
msg2 "autologin: %s" "${autologin}"
|
||||
|
||||
msg2 "netgroups: %s" "$(get_yaml)"
|
||||
|
||||
msg2 "hostname: %s" "${hostname}"
|
||||
msg2 "username: %s" "${username}"
|
||||
msg2 "password: %s" "${password}"
|
||||
msg2 "addgroups: %s" "${addgroups}"
|
||||
|
||||
msg2 "enable_live: %s" "${enable_live[*]}"
|
||||
msg2 "openrc_boot: %s" "${openrc_boot[*]}"
|
||||
msg2 "openrc_default: %s" "${openrc_default[*]}"
|
||||
}
|
||||
|
||||
display_settings(){
|
||||
show_version
|
||||
show_config
|
||||
|
||||
msg "OPTIONS:"
|
||||
msg2 "profile: %s" "${profile}"
|
||||
msg2 "arch: %s" "${target_arch}"
|
||||
msg2 "initsys: %s" "${initsys}"
|
||||
msg2 "kernel: %s" "${kernel}"
|
||||
|
||||
msg "ARGS:"
|
||||
msg2 "group: %s" "${group}"
|
||||
msg2 "calamares: %s" "${calamares}"
|
||||
|
||||
msg "BUILD:"
|
||||
show_profile
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
|
||||
pretend=false
|
||||
group=false
|
||||
cache_dir_netinstall="${workspace_dir}/netinstall"
|
||||
calamares=false
|
||||
|
||||
usage() {
|
||||
echo "Usage: ${0##*/} [options]"
|
||||
echo " -p <profile> Buildset or profile [default: ${profile}]"
|
||||
echo " -a <arch> Arch [default: ${target_arch}]"
|
||||
echo " -k <name> Kernel to use[default: ${kernel}]"
|
||||
echo " -i <name> Init system to use [default: ${initsys}]"
|
||||
echo ' -g Enable pacman group accepted for -p'
|
||||
echo ' -c Check also calamares yaml files generated for the profile'
|
||||
echo ' -q Query settings'
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
echo ''
|
||||
exit $1
|
||||
}
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='p:a:i:k:gcqh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
p) profile="$OPTARG" ;;
|
||||
a) target_arch="$OPTARG" ;;
|
||||
i) initsys="$OPTARG" ;;
|
||||
k) kernel="$OPTARG" ;;
|
||||
g) group=true ;;
|
||||
c) calamares=true ;;
|
||||
q) pretend=true ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
prepare_build
|
||||
|
||||
${pretend} && display_settings && exit 1
|
||||
|
||||
${group} && write_pacman_group_yaml "${profile}" && exit 0
|
||||
|
||||
build
|
@@ -16,10 +16,6 @@ LIBDIR='@libdir@'
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
|
||||
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
|
@@ -11,16 +11,18 @@
|
||||
# openrc_boot=('elogind')
|
||||
# openrc_default=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
|
||||
|
||||
# unset defaults to given values
|
||||
# default values
|
||||
# addgroups="video,power,storage,optical,network,lp,scanner,wheel,users"
|
||||
|
||||
# netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master"
|
||||
|
||||
################# live-session #################
|
||||
|
||||
# unset defaults to given value
|
||||
# default value
|
||||
# hostname="artix"
|
||||
|
||||
# unset defaults to given value
|
||||
# default value
|
||||
# username="artix"
|
||||
|
||||
# unset defaults to given value
|
||||
# default value
|
||||
# password="artix"
|
||||
|
@@ -1,118 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# 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; version 2 of the License.
|
||||
#
|
||||
# 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.
|
||||
|
||||
add_svc_rc(){
|
||||
local mnt="$1" name="$2" rlvl="$3"
|
||||
if [[ -f $mnt/etc/init.d/$name ]];then
|
||||
msg2 "Setting %s ..." "$name"
|
||||
chroot $mnt rc-update add $name $rlvl &>/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
set_xdm(){
|
||||
if [[ -f $1/etc/conf.d/xdm ]];then
|
||||
local conf='DISPLAYMANAGER="'${displaymanager}'"'
|
||||
sed -i -e "s|^.*DISPLAYMANAGER=.*|${conf}|" $1/etc/conf.d/xdm
|
||||
fi
|
||||
}
|
||||
|
||||
configure_hosts(){
|
||||
sed -e "s|localhost.localdomain|localhost.localdomain ${hostname}|" -i $1/etc/hosts
|
||||
}
|
||||
|
||||
configure_logind(){
|
||||
local conf=$1/etc/$2/logind.conf
|
||||
if [[ -e $conf ]];then
|
||||
msg2 "Configuring logind ..."
|
||||
sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' "$conf"
|
||||
sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' "$conf"
|
||||
sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' "$conf"
|
||||
fi
|
||||
}
|
||||
|
||||
configure_services(){
|
||||
local mnt="$1"
|
||||
info "Configuring [%s]" "${initsys}"
|
||||
case ${initsys} in
|
||||
'openrc')
|
||||
for svc in ${openrc_boot[@]}; do
|
||||
add_svc_rc "$mnt" "$svc" "boot"
|
||||
done
|
||||
for svc in ${openrc_default[@]}; do
|
||||
[[ $svc == "xdm" ]] && set_xdm "$mnt"
|
||||
add_svc_rc "$mnt" "$svc" "default"
|
||||
done
|
||||
for svc in ${enable_live[@]}; do
|
||||
add_svc_rc "$mnt" "$svc" "default"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
info "Done configuring [%s]" "${initsys}"
|
||||
}
|
||||
|
||||
configure_system(){
|
||||
local mnt="$1"
|
||||
case ${initsys} in
|
||||
'openrc')
|
||||
configure_logind "$mnt" "elogind"
|
||||
;;
|
||||
esac
|
||||
echo ${hostname} > $mnt/etc/hostname
|
||||
}
|
||||
|
||||
clean_iso_root(){
|
||||
local dest="$1"
|
||||
msg "Deleting isoroot [%s] ..." "${dest##*/}"
|
||||
rm -rf --one-file-system "$dest"
|
||||
}
|
||||
|
||||
clean_up_image(){
|
||||
local path mnt="$1"
|
||||
msg2 "Cleaning [%s]" "${mnt##*/}"
|
||||
|
||||
default_locale "reset" "$mnt"
|
||||
path=$mnt/boot
|
||||
if [[ -d "$path" ]]; then
|
||||
find "$path" -name 'initramfs*.img' -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/var/lib/pacman/sync
|
||||
if [[ -d $path ]];then
|
||||
find "$path" -type f -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/var/cache/pacman/pkg
|
||||
if [[ -d $path ]]; then
|
||||
find "$path" -type f -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/var/log
|
||||
if [[ -d $path ]]; then
|
||||
find "$path" -type f -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/var/tmp
|
||||
if [[ -d $path ]];then
|
||||
find "$path" -mindepth 1 -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/tmp
|
||||
if [[ -d $path ]];then
|
||||
find "$path" -mindepth 1 -delete &> /dev/null
|
||||
fi
|
||||
|
||||
if [[ ${mnt##*/} == 'livefs' ]];then
|
||||
rm -rf "$mnt/etc/pacman.d/gnupg"
|
||||
fi
|
||||
|
||||
find "$mnt" -name *.pacnew -name *.pacsave -name *.pacorig -delete
|
||||
if [[ -f "$mnt/boot/grub/grub.cfg" ]]; then
|
||||
rm $mnt/boot/grub/grub.cfg
|
||||
fi
|
||||
if [[ -f "$mnt/etc/machine-id" ]]; then
|
||||
rm $mnt/etc/machine-id
|
||||
fi
|
||||
}
|
@@ -46,6 +46,15 @@ prepare_boot_extras(){
|
||||
cp $src/usr/share/licenses/common/GPL2/license.txt $dest/memtest.COPYING
|
||||
}
|
||||
|
||||
configure_grub(){
|
||||
local conf="$1"
|
||||
|
||||
sed -e "s|@arch@|${target_arch}|g" \
|
||||
-e "s|@iso_label@|${iso_label}|" \
|
||||
-e "s|@iso_name@|${iso_name}|g" \
|
||||
-i $conf
|
||||
}
|
||||
|
||||
prepare_grub(){
|
||||
local platform=i386-pc img='core.img' grub=$3/boot/grub efi=$3/efi/boot \
|
||||
lib=$1/usr/lib/grub prefix=/boot/grub theme=$2/usr/share/grub data=$1/usr/share/grub
|
||||
|
@@ -1,65 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# 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; version 2 of the License.
|
||||
#
|
||||
# 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.
|
||||
|
||||
track_img() {
|
||||
info "mount: [%s]" "$2"
|
||||
mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}")
|
||||
}
|
||||
|
||||
mount_img() {
|
||||
IMG_ACTIVE_MOUNTS=()
|
||||
mkdir -p "$2"
|
||||
track_img "$1" "$2"
|
||||
}
|
||||
|
||||
umount_img() {
|
||||
if [[ -n ${IMG_ACTIVE_MOUNTS[@]} ]];then
|
||||
info "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}"
|
||||
umount "${IMG_ACTIVE_MOUNTS[@]}"
|
||||
unset IMG_ACTIVE_MOUNTS
|
||||
rm -r "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
track_fs() {
|
||||
info "overlayfs mount: [%s]" "$5"
|
||||
mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}")
|
||||
}
|
||||
|
||||
mount_overlay(){
|
||||
FS_ACTIVE_MOUNTS=()
|
||||
local lower= upper="$1" work="$2" pkglist="$3"
|
||||
local fs=${upper##*/}
|
||||
local rootfs="$work/rootfs" desktopfs="$work/desktopfs" livefs="$work/livefs"
|
||||
mkdir -p "${mnt_dir}/work"
|
||||
mkdir -p "$upper"
|
||||
case $fs in
|
||||
desktopfs) lower="$rootfs" ;;
|
||||
livefs)
|
||||
lower="$rootfs"
|
||||
[[ -f $pkglist ]] && lower="$desktopfs":"$rootfs"
|
||||
;;
|
||||
bootfs)
|
||||
lower="$livefs":"$rootfs"
|
||||
[[ -f $pkglist ]] && lower="$livefs":"$desktopfs":"$rootfs"
|
||||
;;
|
||||
esac
|
||||
track_fs -t overlay overlay -olowerdir="$lower",upperdir="$upper",workdir="${mnt_dir}/work" "$upper"
|
||||
}
|
||||
|
||||
umount_overlay(){
|
||||
if [[ -n ${FS_ACTIVE_MOUNTS[@]} ]];then
|
||||
info "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}"
|
||||
umount "${FS_ACTIVE_MOUNTS[@]}"
|
||||
unset FS_ACTIVE_MOUNTS
|
||||
rm -rf "${mnt_dir}/work"
|
||||
fi
|
||||
}
|
@@ -59,7 +59,7 @@ load_profile(){
|
||||
|
||||
enable_live=('artix-live' 'pacman-init')
|
||||
|
||||
[[ -z ${netgroups} ]] && netgroups="https://raw.githubusercontent.com/artix-linux/netgroups/master"
|
||||
[[ -z ${netgroups_url} ]] && netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master"
|
||||
|
||||
return 0
|
||||
}
|
@@ -83,7 +83,7 @@ write_netinstall_conf(){
|
||||
local conf="$1/netinstall.conf"
|
||||
msg2 "Writing %s ..." "${conf##*/}"
|
||||
echo "---" > "$conf"
|
||||
echo "groupsUrl: ${netgroups}/netgroups-${initsys}.yaml" >> "$conf"
|
||||
echo "groupsUrl: ${netgroups}" >> "$conf"
|
||||
}
|
||||
|
||||
configure_calamares(){
|
192
lib/util-iso.sh
192
lib/util-iso.sh
@@ -10,11 +10,64 @@
|
||||
# GNU General Public License for more details.
|
||||
|
||||
import ${LIBDIR}/util-chroot.sh
|
||||
import ${LIBDIR}/util-iso-chroot.sh
|
||||
import ${LIBDIR}/util-iso-grub.sh
|
||||
import ${LIBDIR}/util-yaml.sh
|
||||
import ${LIBDIR}/util-iso-mount.sh
|
||||
import ${LIBDIR}/util-profile.sh
|
||||
import ${LIBDIR}/util-iso-yaml.sh
|
||||
import ${LIBDIR}/util-iso-profile.sh
|
||||
|
||||
track_img() {
|
||||
info "mount: [%s]" "$2"
|
||||
mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}")
|
||||
}
|
||||
|
||||
mount_img() {
|
||||
IMG_ACTIVE_MOUNTS=()
|
||||
mkdir -p "$2"
|
||||
track_img "$1" "$2"
|
||||
}
|
||||
|
||||
umount_img() {
|
||||
if [[ -n ${IMG_ACTIVE_MOUNTS[@]} ]];then
|
||||
info "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}"
|
||||
umount "${IMG_ACTIVE_MOUNTS[@]}"
|
||||
unset IMG_ACTIVE_MOUNTS
|
||||
rm -r "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
track_fs() {
|
||||
info "overlayfs mount: [%s]" "$5"
|
||||
mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}")
|
||||
}
|
||||
|
||||
mount_overlay(){
|
||||
FS_ACTIVE_MOUNTS=()
|
||||
local lower= upper="$1" work="$2" pkglist="$3"
|
||||
local fs=${upper##*/}
|
||||
local rootfs="$work/rootfs" desktopfs="$work/desktopfs" livefs="$work/livefs"
|
||||
mkdir -p "${mnt_dir}/work"
|
||||
mkdir -p "$upper"
|
||||
case $fs in
|
||||
desktopfs) lower="$rootfs" ;;
|
||||
livefs)
|
||||
lower="$rootfs"
|
||||
[[ -f $pkglist ]] && lower="$desktopfs":"$rootfs"
|
||||
;;
|
||||
bootfs)
|
||||
lower="$livefs":"$rootfs"
|
||||
[[ -f $pkglist ]] && lower="$livefs":"$desktopfs":"$rootfs"
|
||||
;;
|
||||
esac
|
||||
track_fs -t overlay overlay -olowerdir="$lower",upperdir="$upper",workdir="${mnt_dir}/work" "$upper"
|
||||
}
|
||||
|
||||
umount_overlay(){
|
||||
if [[ -n ${FS_ACTIVE_MOUNTS[@]} ]];then
|
||||
info "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}"
|
||||
umount "${FS_ACTIVE_MOUNTS[@]}"
|
||||
unset FS_ACTIVE_MOUNTS
|
||||
rm -rf "${mnt_dir}/work"
|
||||
fi
|
||||
}
|
||||
|
||||
error_function() {
|
||||
if [[ -p $logpipe ]]; then
|
||||
@@ -78,6 +131,114 @@ prepare_traps(){
|
||||
# trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR
|
||||
}
|
||||
|
||||
add_svc_rc(){
|
||||
local mnt="$1" name="$2" rlvl="$3"
|
||||
if [[ -f $mnt/etc/init.d/$name ]];then
|
||||
msg2 "Setting %s ..." "$name"
|
||||
chroot $mnt rc-update add $name $rlvl &>/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
set_xdm(){
|
||||
if [[ -f $1/etc/conf.d/xdm ]];then
|
||||
local conf='DISPLAYMANAGER="'${displaymanager}'"'
|
||||
sed -i -e "s|^.*DISPLAYMANAGER=.*|${conf}|" $1/etc/conf.d/xdm
|
||||
fi
|
||||
}
|
||||
|
||||
configure_hosts(){
|
||||
sed -e "s|localhost.localdomain|localhost.localdomain ${hostname}|" -i $1/etc/hosts
|
||||
}
|
||||
|
||||
configure_logind(){
|
||||
local conf=$1/etc/$2/logind.conf
|
||||
if [[ -e $conf ]];then
|
||||
msg2 "Configuring logind ..."
|
||||
sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' "$conf"
|
||||
sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' "$conf"
|
||||
sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' "$conf"
|
||||
fi
|
||||
}
|
||||
|
||||
configure_services(){
|
||||
local mnt="$1"
|
||||
info "Configuring [%s]" "${initsys}"
|
||||
case ${initsys} in
|
||||
'openrc')
|
||||
for svc in ${openrc_boot[@]}; do
|
||||
add_svc_rc "$mnt" "$svc" "boot"
|
||||
done
|
||||
for svc in ${openrc_default[@]}; do
|
||||
[[ $svc == "xdm" ]] && set_xdm "$mnt"
|
||||
add_svc_rc "$mnt" "$svc" "default"
|
||||
done
|
||||
for svc in ${enable_live[@]}; do
|
||||
add_svc_rc "$mnt" "$svc" "default"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
info "Done configuring [%s]" "${initsys}"
|
||||
}
|
||||
|
||||
configure_system(){
|
||||
local mnt="$1"
|
||||
case ${initsys} in
|
||||
'openrc')
|
||||
configure_logind "$mnt" "elogind"
|
||||
;;
|
||||
esac
|
||||
echo ${hostname} > $mnt/etc/hostname
|
||||
}
|
||||
|
||||
clean_iso_root(){
|
||||
local dest="$1"
|
||||
msg "Deleting isoroot [%s] ..." "${dest##*/}"
|
||||
rm -rf --one-file-system "$dest"
|
||||
}
|
||||
|
||||
clean_up_image(){
|
||||
local path mnt="$1"
|
||||
msg2 "Cleaning [%s]" "${mnt##*/}"
|
||||
|
||||
default_locale "reset" "$mnt"
|
||||
path=$mnt/boot
|
||||
if [[ -d "$path" ]]; then
|
||||
find "$path" -name 'initramfs*.img' -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/var/lib/pacman/sync
|
||||
if [[ -d $path ]];then
|
||||
find "$path" -type f -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/var/cache/pacman/pkg
|
||||
if [[ -d $path ]]; then
|
||||
find "$path" -type f -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/var/log
|
||||
if [[ -d $path ]]; then
|
||||
find "$path" -type f -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/var/tmp
|
||||
if [[ -d $path ]];then
|
||||
find "$path" -mindepth 1 -delete &> /dev/null
|
||||
fi
|
||||
path=$mnt/tmp
|
||||
if [[ -d $path ]];then
|
||||
find "$path" -mindepth 1 -delete &> /dev/null
|
||||
fi
|
||||
|
||||
if [[ ${mnt##*/} == 'livefs' ]];then
|
||||
rm -rf "$mnt/etc/pacman.d/gnupg"
|
||||
fi
|
||||
|
||||
find "$mnt" -name *.pacnew -name *.pacsave -name *.pacorig -delete
|
||||
if [[ -f "$mnt/boot/grub/grub.cfg" ]]; then
|
||||
rm $mnt/boot/grub/grub.cfg
|
||||
fi
|
||||
if [[ -f "$mnt/etc/machine-id" ]]; then
|
||||
rm $mnt/etc/machine-id
|
||||
fi
|
||||
}
|
||||
|
||||
configure_live_image(){
|
||||
local fs="$1"
|
||||
msg "Configuring [livefs]"
|
||||
@@ -198,14 +359,11 @@ assemble_iso(){
|
||||
-no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
||||
-eltorito-alt-boot \
|
||||
-append_partition 2 0xef ${iso_root}/efi.img \
|
||||
-e --interval:appended_partition_2:all:: \
|
||||
-e --interval:appended_partition_2:all:: -iso_mbr_part_type 0x00 \
|
||||
-no-emul-boot \
|
||||
-iso-level 3 \
|
||||
-o ${iso_dir}/${iso_file} \
|
||||
${iso_root}/
|
||||
|
||||
# arg to add with xorriso-1.4.7
|
||||
# -iso_mbr_part_type 0x00
|
||||
}
|
||||
|
||||
# Build ISO
|
||||
@@ -344,23 +502,6 @@ make_bootfs() {
|
||||
fi
|
||||
}
|
||||
|
||||
configure_grub(){
|
||||
local conf="$1"
|
||||
local default_args="artixbasedir=${iso_name} artixlabel=${iso_label}" boot_args=('quiet')
|
||||
|
||||
sed -e "s|@DIST_NAME@|${iso_name}|g" \
|
||||
-e "s|@ARCH@|${target_arch}|g" \
|
||||
-e "s|@DEFAULT_ARGS@|${default_args}|g" \
|
||||
-e "s|@BOOT_ARGS@|${boot_args[*]}|g" \
|
||||
-e "s|@PROFILE@|${profile}|g" \
|
||||
-i $conf
|
||||
}
|
||||
|
||||
configure_grub_theme(){
|
||||
local conf="$1"
|
||||
sed -e "s|@DIST@|${iso_name}|" -i "$conf"
|
||||
}
|
||||
|
||||
make_grub(){
|
||||
if [[ ! -e ${work_dir}/grub.lock ]]; then
|
||||
msg "Prepare [/iso/boot/grub]"
|
||||
@@ -368,7 +509,6 @@ make_grub(){
|
||||
prepare_grub "${work_dir}/rootfs" "${work_dir}/livefs" "${iso_root}"
|
||||
|
||||
configure_grub "${iso_root}/boot/grub/kernels.cfg"
|
||||
configure_grub_theme "${iso_root}/boot/grub/variable.cfg"
|
||||
|
||||
: > ${work_dir}/grub.lock
|
||||
msg "Done [/iso/boot/grub]"
|
||||
|
@@ -1,54 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# 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; version 2 of the License.
|
||||
#
|
||||
# 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.
|
||||
|
||||
import ${LIBDIR}/util-yaml.sh
|
||||
|
||||
write_netgroup_yaml(){
|
||||
local name="$1" yaml="$2"
|
||||
msg2 "Writing %s ..." "${yaml##*/}"
|
||||
echo "---" > "$yaml"
|
||||
echo "- name: '$name'" >> "$yaml"
|
||||
echo " description: '$name'" >> "$yaml"
|
||||
echo " selected: false" >> "$yaml"
|
||||
echo " hidden: false" >> "$yaml"
|
||||
echo " critical: false" >> "$yaml"
|
||||
echo " packages:" >> "$yaml"
|
||||
for p in ${packages[@]};do
|
||||
echo " - $p" >> "$yaml"
|
||||
done
|
||||
}
|
||||
|
||||
write_pacman_group_yaml(){
|
||||
local group="$1"
|
||||
packages=$(pacman -Sgq "$group")
|
||||
prepare_dir "${cache_dir_netinstall}/pacman"
|
||||
write_netgroup_yaml "$group" "${cache_dir_netinstall}/pacman/$group.yaml"
|
||||
}
|
||||
|
||||
gen_fn(){
|
||||
echo "${yaml_dir}/$1-${target_arch}-${initsys}.yaml"
|
||||
}
|
||||
|
||||
prepare_build(){
|
||||
load_profile "${profile}"
|
||||
yaml_dir=${cache_dir_netinstall}/${profile}/${target_arch}
|
||||
prepare_dir "${yaml_dir}"
|
||||
}
|
||||
|
||||
build(){
|
||||
load_pkgs "${root_list}" "${target_arch}" "${initsys}" "${kernel}"
|
||||
write_netgroup_yaml "${profile}" "$(gen_fn "Packages-Root")"
|
||||
if [[ -f "${desktop_list}" ]]; then
|
||||
load_pkgs "${desktop_list}" "${target_arch}" "${initsys}" "${kernel}"
|
||||
write_netgroup_yaml "${profile}" "$(gen_fn "Packages-Desktop")"
|
||||
fi
|
||||
${calamares} && configure_calamares "${yaml_dir}"
|
||||
}
|
Reference in New Issue
Block a user