Skip to content
Snippets Groups Projects
customizeChroot 3.98 KiB
Newer Older
  • Learn to ignore specific revisions
  • Eric Vidal's avatar
    Eric Vidal committed
    # Copyright (c) 2015-2021 Eric Vidal <eric@obarun.org>
    
    # This file is part of Obarun. It is subject to the license terms in
    # the LICENSE file found in the top-level directory of this
    
    Eric Vidal's avatar
    Eric Vidal committed
    # distribution.
    
    # This file may not be copied, modified, propagated, or distributed
    # except according to the terms contained in the LICENSE file.
    
    
    sourcing(){
    
    
        local list
    
        for list in /tmp/obarun-install-tmp/install.conf /usr/lib/obarun/util.sh; do
            if [[ -f "${list}" ]]; then
                source "${list}"
            else
                oblog -f "Missing file : ${list}"
                exit
            fi
        done
    
        unset list
    
    }
    sourcing
    
    custo_once() {
    
        local _tmp cmd
        cmd="${1}"
        _tmp="/tmp/obarun-install-tmp"
    
        if [[ ! -d $_tmp ]]; then
            mkdir -p -m0755 $_tmp || die "Impossible to create $_tmp"
        fi
    
        if [[ ! -e $_tmp/customize.${cmd} ]]; then
            "${cmd}" || die "Cannot execute $_"
            touch $_tmp/customize.${cmd}
        else
    
        unset _tmp
    }
    
    ############################## only modifie this script after this line ############################
    
    
    check_tree(){
    
        local tree="${1}"
    
    
    Eric Vidal's avatar
    Eric Vidal committed
        if ! [[ -d /var/lib/66/system/"${tree}" ]]; then
    
            return 1 ;
        else
    
            oblog "Tree ${tree} already exists"
    
    create_log_user(){
    
        oblog "add ${NEWUSER} at log group"
        gpasswd -a "$NEWUSER" log
    
        if ! check_tree "boot"; then
    
            oblog "Create tree boot"
    
            66-tree -zv3 -n boot || die "unable to create boot tree"
        fi
    
        oblog "Enable boot@system service at tree boot"
    
        66-enable -zv3 -t boot -F boot@system || die "unable to enable boot@system"
    
        # By default the configuration file is prefixed with a dot.
        # 66-env -r do not know about it, so copy it without the prefix
        BOOT_CONF="$(readlink /etc/66/conf/boot@system/version)"
    
        cp "${BOOT_CONF}/.boot@system" "${BOOT_CONF}/boot@system" || die "unable to cp boot@system configuration file"
    
    
        oblog "Configure boot@system service"
    
        66-env -t boot -r "HOSTNAME=!${HOSTNAME}" -r "KEYMAP=!${KEYMAP}" -r "TZ=${ZONE}/${SUBZONE}" boot@system || die "unable to configure boot@system service"
    
        oblog "Apply change to the boot@system service"
    
        66-enable -zv3 -t boot -F boot@system || die "unable to apply boot changes"
    
        if ! check_tree "root"; then
    
            oblog "Create tree root and enable it"
    
            66-tree -zv3 -cnE root || die "unable to create root tree"
        fi
    }
    
        oblog "Enable consolekit, dbus, openntpd, connmand and wpa_supplicant on tree root"
    
        66-enable -zv3 consolekit dbus openntpd connmand wpa_supplicant || die "unable to enable dbus openntpd connmand wpa_supplicant"
    
        if ! check_tree "boot-user"; then
    
            oblog "Create boot-user tree"
    
            66-tree -zv3 -En boot-user || die "unable to create boot-user tree"
        fi
    
    config_enable_boot_user(){
    
        oblog "Enable boot-user@${NEWUSER} at boot-user tree"
    
        66-enable -zv3 -t boot-user -F boot-user@${NEWUSER} || die "unable to enable boot-user@${NEWUSER} service"
    
        oblog "Create base tree for ${NEWUSER}, enables and makes it current"
    
    Eric Vidal's avatar
    Eric Vidal committed
        su "${NEWUSER}" -c "if ! s6-test -d /home/${NEWUSER}/.66/system/base; then \
    
    Eric Vidal's avatar
    Eric Vidal committed
                                66-tree -zv3 -Ecn base ; \
    
                            fi" || die "unable to create base tree"
    
        oblog "Enable xdg-user-dirs, dbus-session@${NEWUSER} on base tree"
    
        su "${NEWUSER}" -c "66-enable -zv3 xdg-user-dirs dbus-session@${NEWUSER}" || die "unable to enable xdg-user-dirs dbus-session@${NEWUSER} service"
    
    custo_once create_log_user
    
    custo_once config_tree_boot
    custo_once config_enable_boot
    custo_once config_tree_root
    custo_once config_enable_root
    custo_once config_tree_boot_user
    custo_once config_enable_boot_user
    custo_once config_tree_base_user
    custo_once config_enable_base_user
    
    Eric Vidal's avatar
    Eric Vidal committed
    oblog "Customization terminate"