2015-01-28 21:05:18 +01:00
|
|
|
#!/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.
|
|
|
|
|
|
|
|
gen_pw(){
|
2015-02-13 15:17:00 +01:00
|
|
|
echo $(perl -e 'print crypt($ARGV[0], "password")' ${password})
|
2015-01-28 21:05:18 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
# $1: chroot
|
|
|
|
configure_user(){
|
2015-02-13 15:17:00 +01:00
|
|
|
# set up user and password
|
|
|
|
msg2 "Creating user: ${username} password: ${password} ..."
|
|
|
|
chroot $1 useradd -m -g users -G ${addgroups} -p $(gen_pw) ${username}
|
2015-01-28 21:05:18 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
# $1: chroot
|
|
|
|
configure_hostname(){
|
2015-02-13 15:17:00 +01:00
|
|
|
msg2 "Setting hostname: ${hostname} ..."
|
|
|
|
if [[ ${initsys} == 'openrc' ]];then
|
|
|
|
local _hostname='hostname="'${hostname}'"'
|
|
|
|
sed -i -e "s|^.*hostname=.*|${_hostname}|" $1/etc/conf.d/hostname
|
|
|
|
else
|
|
|
|
echo ${hostname} > $1/etc/hostname
|
|
|
|
fi
|
2015-01-28 21:05:18 +01:00
|
|
|
}
|
|
|
|
|
2015-03-04 00:40:44 +01:00
|
|
|
# $1: chroot
|
|
|
|
configure_hosts(){
|
|
|
|
sed -e "s|localhost.localdomain|localhost.localdomain ${hostname}|" -i $1/etc/hosts
|
|
|
|
}
|
|
|
|
|
2015-01-28 21:05:18 +01:00
|
|
|
# $1: chroot
|
|
|
|
configure_plymouth(){
|
2015-02-13 15:17:00 +01:00
|
|
|
if ${is_plymouth};then
|
|
|
|
msg2 "Setting plymouth $plymouth_theme ...."
|
|
|
|
sed -i -e "s/^.*Theme=.*/Theme=$plymouth_theme/" $1/etc/plymouth/plymouthd.conf
|
|
|
|
fi
|
2015-01-28 21:05:18 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
configure_services_live(){
|
2015-03-04 18:09:27 +01:00
|
|
|
case ${initsys} in
|
|
|
|
'openrc')
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Configuring [${initsys}] ...."
|
2015-03-04 18:09:27 +01:00
|
|
|
for svc in ${start_openrc_live[@]}; do
|
|
|
|
msg2 "Setting $svc ..."
|
2015-05-22 13:09:28 +02:00
|
|
|
chroot $1 rc-update add $svc default &> /dev/null
|
2015-03-04 18:09:27 +01:00
|
|
|
done
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Done configuring [${initsys}]"
|
2015-03-04 18:09:27 +01:00
|
|
|
;;
|
|
|
|
'systemd')
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Configuring [${initsys}] ...."
|
2015-03-04 18:09:27 +01:00
|
|
|
for svc in ${start_systemd_live[@]}; do
|
|
|
|
msg2 "Setting $svc ..."
|
2015-05-22 13:09:28 +02:00
|
|
|
chroot $1 systemctl enable $svc &> /dev/null
|
2015-03-04 18:09:27 +01:00
|
|
|
done
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Done configuring [${initsys}]"
|
2015-03-04 18:09:27 +01:00
|
|
|
;;
|
|
|
|
*)
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Unsupported: [${initsys}]!"
|
2015-03-04 18:09:27 +01:00
|
|
|
break
|
|
|
|
;;
|
|
|
|
esac
|
2015-01-28 21:05:18 +01:00
|
|
|
}
|
|
|
|
|
2015-03-11 15:02:54 +01:00
|
|
|
# $1: chroot
|
2015-02-19 16:57:08 +01:00
|
|
|
configure_lsb(){
|
|
|
|
[[ -f $1/boot/grub/grub.cfg ]] && rm $1/boot/grub/grub.cfg
|
|
|
|
if [ -e $1/etc/lsb-release ] ; then
|
2015-03-05 10:54:09 +01:00
|
|
|
sed -i -e "s/^.*DISTRIB_RELEASE.*/DISTRIB_RELEASE=${dist_release}/" $1/etc/lsb-release
|
|
|
|
sed -i -e "s/^.*DISTRIB_CODENAME.*/DISTRIB_CODENAME=${dist_codename}/" $1/etc/lsb-release
|
2015-02-19 16:57:08 +01:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2015-03-04 10:41:32 +01:00
|
|
|
# configure_dbus(){
|
|
|
|
# msg2 "Configuring dbus ...."
|
|
|
|
# # set unique machine-id
|
|
|
|
# # dbus-uuidgen --ensure=/etc/machine-id
|
|
|
|
# # ln -sf /etc/machine-id /var/lib/dbus/machine-id
|
|
|
|
# chroot $1 dbus-uuidgen --ensure=/var/lib/dbus/machine-id
|
|
|
|
# }
|
2015-02-19 16:57:08 +01:00
|
|
|
|
2015-01-28 21:05:18 +01:00
|
|
|
configure_services(){
|
2015-03-04 18:09:27 +01:00
|
|
|
case ${initsys} in
|
|
|
|
'openrc')
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Congiguring [${initsys}] ...."
|
2015-03-04 18:09:27 +01:00
|
|
|
for svc in ${start_openrc[@]}; do
|
|
|
|
msg2 "Setting $svc ..."
|
2015-05-22 13:09:28 +02:00
|
|
|
chroot $1 rc-update add $svc default &> /dev/null
|
2015-03-04 18:09:27 +01:00
|
|
|
done
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Done configuring [${initsys}]"
|
2015-03-04 18:09:27 +01:00
|
|
|
;;
|
|
|
|
'systemd')
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Congiguring [${initsys}] ...."
|
2015-03-04 18:09:27 +01:00
|
|
|
for svc in ${start_systemd[@]}; do
|
|
|
|
msg2 "Setting $svc ..."
|
2015-05-22 13:09:28 +02:00
|
|
|
chroot $1 systemctl enable $svc &> /dev/null
|
2015-03-04 18:09:27 +01:00
|
|
|
done
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Done configuring [${initsys}]"
|
2015-03-04 18:09:27 +01:00
|
|
|
;;
|
|
|
|
*)
|
2015-03-05 16:06:08 +01:00
|
|
|
msg3 "Unsupported: [${initsys}]!"
|
2015-03-04 18:09:27 +01:00
|
|
|
break
|
|
|
|
;;
|
|
|
|
esac
|
2015-01-28 21:05:18 +01:00
|
|
|
}
|
|
|
|
|
2015-03-11 15:02:54 +01:00
|
|
|
# $1: chroot
|
|
|
|
configure_environment(){
|
|
|
|
case ${custom} in
|
|
|
|
gnome|xfce|openbox|enlightenment|cinnamon|pekwm|lxde|mate)
|
|
|
|
echo "QT_STYLE_OVERRIDE=gtk" >> $1/etc/environment
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
2015-01-28 21:05:18 +01:00
|
|
|
# $1: chroot
|
|
|
|
# $2: user
|
|
|
|
configure_accountsservice(){
|
2015-02-13 22:37:20 +01:00
|
|
|
msg2 "Configuring AccountsService ..."
|
2015-02-13 15:17:00 +01:00
|
|
|
local path=$1/var/lib/AccountsService/users
|
|
|
|
if [ -d "${path}" ] ; then
|
|
|
|
echo "[User]" > ${path}/$2
|
|
|
|
if [ -e "$1/usr/bin/openbox-session" ] ; then
|
|
|
|
echo "XSession=openbox" >> ${path}/$2
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/startxfce4" ] ; then
|
|
|
|
echo "XSession=xfce" >> ${path}/$2
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/cinnamon-session" ] ; then
|
|
|
|
echo "XSession=cinnamon" >> ${path}/$2
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/mate-session" ] ; then
|
|
|
|
echo "XSession=mate" >> ${path}/$2
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/enlightenment_start" ] ; then
|
|
|
|
echo "XSession=enlightenment" >> ${path}/$2
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/startlxde" ] ; then
|
|
|
|
echo "XSession=LXDE" >> ${path}/$2
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/lxqt-session" ] ; then
|
|
|
|
echo "XSession=LXQt" >> ${path}/$2
|
|
|
|
fi
|
|
|
|
echo "Icon=/var/lib/AccountsService/icons/$2.png" >> ${path}/$2
|
2015-01-28 21:05:18 +01:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1: chroot
|
|
|
|
configure_displaymanager(){
|
2015-02-13 15:17:00 +01:00
|
|
|
msg2 "Configuring Displaymanager ..."
|
|
|
|
case ${displaymanager} in
|
|
|
|
'lightdm')
|
|
|
|
chroot $1 groupadd -r autologin
|
|
|
|
local conf=$1/etc/lightdm/lightdm.conf
|
|
|
|
if [ -e "$1/usr/bin/openbox-session" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=openbox/' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/startxfce4" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=xfce/' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/cinnamon-session" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=cinnamon/' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/mate-session" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=mate/' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/enlightenment_start" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=enlightenment/' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/startlxde" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=LXDE/' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/lxqt-session" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=lxqt/' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/pekwm" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=pekwm/' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/i3" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=i3/' ${conf}
|
|
|
|
fi
|
2015-04-17 15:13:55 +02:00
|
|
|
if [ -e "$1/usr/bin/pantheon-session" ] ; then
|
|
|
|
sed -i -e 's/^.*user-session=.*/user-session=pantheon/' ${conf}
|
|
|
|
fi
|
2015-02-13 15:17:00 +01:00
|
|
|
if [[ ${initsys} == 'openrc' ]];then
|
|
|
|
sed -i -e 's/^.*minimum-vt=.*/minimum-vt=7/' ${conf}
|
|
|
|
fi
|
|
|
|
local greeters=$(ls $1/etc/lightdm/*greeter.conf)
|
|
|
|
for g in ${greeters[@]};do
|
|
|
|
case ${g##*/} in
|
|
|
|
'lxqt-lightdm-greeter.conf')
|
|
|
|
sed -i -e "s/^.*greeter-session=.*/greeter-session=lxqt-lightdm-greeter/" ${conf}
|
|
|
|
;;
|
|
|
|
'lightdm-kde-greeter.conf')
|
|
|
|
sed -i -e "s/^.*greeter-session=.*/greeter-session=lightdm-kde-greeter/" ${conf}
|
|
|
|
;;
|
|
|
|
*) break ;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
;;
|
|
|
|
'gdm')
|
|
|
|
configure_accountsservice $1 "gdm"
|
|
|
|
;;
|
|
|
|
'mdm')
|
|
|
|
local conf=$1/etc/mdm/custom.conf
|
|
|
|
if [ -e "$1/usr/bin/startxfce4" ] ; then
|
|
|
|
sed -i 's|default.desktop|xfce.desktop|g' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/cinnamon-session" ] ; then
|
|
|
|
sed -i 's|default.desktop|cinnamon.desktop|g' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/openbox-session" ] ; then
|
|
|
|
sed -i 's|default.desktop|openbox.desktop|g' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/mate-session" ] ; then
|
|
|
|
sed -i 's|default.desktop|mate.desktop|g' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/startlxde" ] ; then
|
|
|
|
sed -i 's|default.desktop|LXDE.desktop|g' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/lxqt-session" ] ; then
|
|
|
|
sed -i 's|default.desktop|lxqt.desktop|g' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/enlightenment_start" ] ; then
|
|
|
|
sed -i 's|default.desktop|enlightenment.desktop|g' ${conf}
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
'sddm')
|
|
|
|
local conf=$1/etc/sddm.conf
|
|
|
|
if [ -e "$1/usr/bin/startxfce4" ] ; then
|
|
|
|
sed -i -e 's|^Session=.*|Session=xfce.desktop|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/cinnamon-session" ] ; then
|
|
|
|
sed -i -e 's|^Session=.*|Session=cinnamon.desktop|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/openbox-session" ] ; then
|
|
|
|
sed -i -e 's|^Session=.*|Session=openbox.desktop|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/mate-session" ] ; then
|
|
|
|
sed -i -e 's|^Session=.*|Session=mate.desktop|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/lxsession" ] ; then
|
|
|
|
sed -i -e 's|^Session=.*|Session=LXDE.desktop|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/lxqt-session" ] ; then
|
|
|
|
sed -i -e 's|^Session=.*|Session=lxqt.desktop|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/enlightenment_start" ] ; then
|
|
|
|
sed -i -e 's|^Session=.*|Session=enlightenment.desktop|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/startkde" ] ; then
|
|
|
|
sed -i -e 's|^Session=.*|Session=plasma.desktop|' ${conf}
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
'lxdm')
|
|
|
|
local conf=$1/etc/lxdm/lxdm.conf
|
|
|
|
if [ -e "$1/usr/bin/openbox-session" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/openbox-session|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/startxfce4" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/startxfce4|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/cinnamon-session" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/cinnamon-session|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/mate-session" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/mate-session|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/enlightenment_start" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/enlightenment_start|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/startlxde" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/lxsession|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/lxqt-session" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/lxqt-session|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/pekwm" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/pekwm|' ${conf}
|
|
|
|
fi
|
|
|
|
if [ -e "$1/usr/bin/i3" ] ; then
|
|
|
|
sed -i -e 's|^.*session=.*|session=/usr/bin/i3|' ${conf}
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*) break ;;
|
|
|
|
esac
|
2015-03-03 19:39:03 +01:00
|
|
|
if [[ ${displaymanager} != "none" ]];then
|
|
|
|
if [[ ${initsys} == 'openrc' ]];then
|
|
|
|
local conf='DISPLAYMANAGER="'${displaymanager}'"'
|
|
|
|
sed -i -e "s|^.*DISPLAYMANAGER=.*|${conf}|" $1/etc/conf.d/xdm
|
2015-05-22 13:09:28 +02:00
|
|
|
chroot $1 rc-update add xdm default &> /dev/null
|
2015-03-03 19:39:03 +01:00
|
|
|
else
|
|
|
|
local service=${displaymanager}
|
|
|
|
if [[ -f $1/etc/plymouth/plymouthd.conf && \
|
|
|
|
-f $1/usr/lib/systemd/system/${displaymanager}-plymouth.service ]]; then
|
|
|
|
service=${displaymanager}-plymouth
|
|
|
|
fi
|
2015-05-22 13:09:28 +02:00
|
|
|
chroot $1 systemctl enable ${service} &> /dev/null
|
2015-02-13 15:17:00 +01:00
|
|
|
fi
|
2015-01-28 21:05:18 +01:00
|
|
|
fi
|
2015-02-13 15:17:00 +01:00
|
|
|
msg2 "Configured: ${displaymanager}"
|
2015-01-28 21:05:18 +01:00
|
|
|
}
|
2015-01-29 00:17:15 +01:00
|
|
|
|
2015-03-11 15:02:54 +01:00
|
|
|
# $1: chroot
|
2015-01-29 00:17:15 +01:00
|
|
|
configure_xorg_drivers(){
|
|
|
|
# Disable Catalyst if not present
|
|
|
|
if [ -z "$(ls $1/opt/livecd/pkgs/ | grep catalyst-utils 2> /dev/null)" ]; then
|
2015-02-13 15:17:00 +01:00
|
|
|
msg2 "Disabling Catalyst driver"
|
|
|
|
mkdir -p $1/var/lib/mhwd/db/pci/graphic_drivers/catalyst/
|
|
|
|
touch $1/var/lib/mhwd/db/pci/graphic_drivers/catalyst/MHWDCONFIG
|
2015-01-29 00:17:15 +01:00
|
|
|
fi
|
|
|
|
# Disable Nvidia if not present
|
|
|
|
if [ -z "$(ls $1/opt/livecd/pkgs/ | grep nvidia-utils 2> /dev/null)" ]; then
|
2015-02-13 15:17:00 +01:00
|
|
|
msg2 "Disabling Nvidia driver"
|
|
|
|
mkdir -p $1/var/lib/mhwd/db/pci/graphic_drivers/nvidia/
|
|
|
|
touch $1/var/lib/mhwd/db/pci/graphic_drivers/nvidia/MHWDCONFIG
|
2015-01-29 00:17:15 +01:00
|
|
|
fi
|
|
|
|
if [ -z "$(ls $1/opt/livecd/pkgs/ | grep nvidia-utils 2> /dev/null)" ]; then
|
2015-02-13 15:17:00 +01:00
|
|
|
msg2 "Disabling Nvidia Bumblebee driver"
|
|
|
|
mkdir -p $1/var/lib/mhwd/db/pci/graphic_drivers/hybrid-intel-nvidia-bumblebee/
|
|
|
|
touch $1/var/lib/mhwd/db/pci/graphic_drivers/hybrid-intel-nvidia-bumblebee/MHWDCONFIG
|
2015-01-29 00:17:15 +01:00
|
|
|
fi
|
|
|
|
if [ -z "$(ls $1/opt/livecd/pkgs/ | grep nvidia-304xx-utils 2> /dev/null)" ]; then
|
2015-02-13 15:17:00 +01:00
|
|
|
msg2 "Disabling Nvidia 304xx driver"
|
|
|
|
mkdir -p $1/var/lib/mhwd/db/pci/graphic_drivers/nvidia-304xx/
|
|
|
|
touch $1/var/lib/mhwd/db/pci/graphic_drivers/nvidia-304xx/MHWDCONFIG
|
2015-01-29 00:17:15 +01:00
|
|
|
fi
|
|
|
|
if [ -z "$(ls $1/opt/livecd/pkgs/ | grep nvidia-340xx-utils 2> /dev/null)" ]; then
|
2015-02-13 15:17:00 +01:00
|
|
|
msg2 "Disabling Nvidia 340xx driver"
|
|
|
|
mkdir -p $1/var/lib/mhwd/db/pci/graphic_drivers/nvidia-340xx/
|
|
|
|
touch $1/var/lib/mhwd/db/pci/graphic_drivers/nvidia-340xx/MHWDCONFIG
|
2015-01-29 00:17:15 +01:00
|
|
|
fi
|
|
|
|
}
|
2015-05-21 19:54:29 +02:00
|
|
|
|
|
|
|
clean_chroots(){
|
|
|
|
msg "Cleaning up ..."
|
|
|
|
for image in "$1"/*-image; do
|
|
|
|
[[ -d ${image} ]] || continue
|
|
|
|
if [[ $(basename "${image}") != "pkgs-image" ]] || \
|
|
|
|
[[ $(basename "${image}") != "lng-image" ]];then
|
|
|
|
msg2 "Deleting chroot '$(basename "${image}")'..."
|
|
|
|
lock 9 "${image}.lock" "Locking chroot '${image}'"
|
|
|
|
if [[ "$(stat -f -c %T "${image}")" == btrfs ]]; then
|
2015-05-22 13:09:28 +02:00
|
|
|
{ type -P btrfs && btrfs subvolume delete "${image}"; } &> /dev/null
|
2015-05-21 19:54:29 +02:00
|
|
|
fi
|
|
|
|
rm -rf --one-file-system "${image}"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
exec 9>&-
|
|
|
|
rm -rf --one-file-system "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
configure_custom_image(){
|
|
|
|
msg "Configuring [${custom}-image]"
|
|
|
|
configure_plymouth "$1"
|
|
|
|
configure_displaymanager "$1"
|
|
|
|
configure_services "$1"
|
|
|
|
configure_environment "$1"
|
|
|
|
msg "Done configuring [${custom}-image]"
|
|
|
|
}
|
|
|
|
|
|
|
|
configure_livecd_image(){
|
|
|
|
msg "Configuring [livecd-image]"
|
|
|
|
configure_hostname "$1"
|
|
|
|
configure_hosts "$1"
|
|
|
|
configure_accountsservice "$1" "${username}"
|
|
|
|
configure_user "$1"
|
|
|
|
configure_services_live "$1"
|
|
|
|
configure_calamares "$1"
|
|
|
|
configure_thus "$1"
|
|
|
|
configure_cli "$1"
|
|
|
|
msg "Done configuring [livecd-image]"
|
|
|
|
}
|
|
|
|
|
|
|
|
make_repo(){
|
|
|
|
repo-add ${work_dir}/pkgs-image/opt/livecd/pkgs/gfx-pkgs.db.tar.gz ${work_dir}/pkgs-image/opt/livecd/pkgs/*pkg*z
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1: work dir
|
|
|
|
# $2: cache dir
|
|
|
|
# $3: pkglist
|
|
|
|
download_to_cache(){
|
|
|
|
pacman -v --config "${pacman_conf}" \
|
|
|
|
--arch "${arch}" --root "$1" \
|
|
|
|
--cache $2 -Syw $3 --noconfirm
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1: image path
|
|
|
|
# $2: packages
|
|
|
|
make_chroot(){
|
|
|
|
[[ "$1" == "${work_dir}/root-image" ]] && local flag="-L"
|
|
|
|
setarch "${arch}" \
|
|
|
|
mkchroot -C ${pacman_conf} \
|
|
|
|
-S ${mirrors_conf} \
|
|
|
|
${flag} \
|
2015-05-22 13:09:28 +02:00
|
|
|
$@ || die "Failed to retrieve one or more packages!"
|
2015-05-21 19:54:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# $1: new branch
|
|
|
|
aufs_mount_root_image(){
|
|
|
|
msg2 "mount [root-image] on [${1##*/}]"
|
|
|
|
mount -t aufs -o br="$1":${work_dir}/root-image=ro none "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1: add branch
|
|
|
|
aufs_append_root_image(){
|
|
|
|
msg2 "append [root-image] on [${1##*/}]"
|
|
|
|
mount -t aufs -o remount,append:${work_dir}/root-image=ro none "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1: add branch
|
|
|
|
aufs_mount_custom_image(){
|
|
|
|
msg2 "mount [${1##*/}] on [${custom}-image]"
|
|
|
|
mount -t aufs -o br="$1":${work_dir}/${custom}-image=ro none "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1: del branch
|
|
|
|
aufs_remove_image(){
|
|
|
|
if mountpoint -q "$1";then
|
|
|
|
msg2 "unmount ${1##*/}"
|
|
|
|
umount $1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
umount_image_handler(){
|
|
|
|
aufs_remove_image "${work_dir}/livecd-image"
|
|
|
|
aufs_remove_image "${work_dir}/${custom}-image"
|
|
|
|
aufs_remove_image "${work_dir}/root-image"
|
|
|
|
aufs_remove_image "${work_dir}/pkgs-image"
|
|
|
|
aufs_remove_image "${work_dir}/lng-image"
|
|
|
|
aufs_remove_image "${work_dir}/boot-image"
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1: image path
|
|
|
|
clean_up_image(){
|
2015-05-22 15:03:10 +02:00
|
|
|
msg2 "Cleaning up [${1##*/}]"
|
2015-05-22 13:09:28 +02:00
|
|
|
[[ -d "$1/boot/" ]] && find "$1/boot" -name 'initramfs*.img' -delete &> /dev/null
|
2015-05-21 19:54:29 +02:00
|
|
|
[[ -f "$1/etc/locale.gen.bak" ]] && mv "$1/etc/locale.gen.bak" "$1/etc/locale.gen"
|
|
|
|
[[ -f "$1/etc/locale.conf.bak" ]] && mv "$1/etc/locale.conf.bak" "$1/etc/locale.conf"
|
|
|
|
|
2015-05-22 13:09:28 +02:00
|
|
|
find "$1/var/lib/pacman" -maxdepth 1 -type f -delete &> /dev/null
|
|
|
|
find "$1/var/lib/pacman/sync" -type f -delete &> /dev/null
|
|
|
|
find "$1/var/cache/pacman/pkg" -type f -delete &> /dev/null
|
|
|
|
find "$1/var/log" -type f -delete &> /dev/null
|
|
|
|
find "$1/var/tmp" -mindepth 1 -delete &> /dev/null
|
|
|
|
find "$1/tmp" -mindepth 1 -delete &> /dev/null
|
2015-05-21 19:54:29 +02:00
|
|
|
|
|
|
|
# find "${work_dir}" -name *.pacnew -name *.pacsave -name *.pacorig -delete
|
|
|
|
}
|