#!@BINDIR@/bash
# Copyright (c) 2015-2018 Eric Vidal <eric@obarun.org>
# All rights reserved.
# 
# 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
# distribution.
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.

out_progress() {
    oblog "[ $1 ]"
    oblog "      " 
}

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
        return
    fi
    unset _tmp
}

############################## only modifie this script after this line ############################

create_log_user(){
    oblog "add ${NEWUSER} to log group"
    gpasswd -a "$NEWUSER" log
}
custo_once create_log_user

config_66(){

    oblog "Create [boot] tree"
    out_progress "Starting ..."
    #sleep 2
       
       66-tree -zv3 -n boot || die "unable to create [boot] tree"

    out_progress "Done"
    #sleep 1

    oblog "Enable (boot@system) service to [boot] tree"
    out_progress "Starting ..."
    #sleep 2
        
        66-enable -zv3 -t boot -C -F boot@system || die "unable to enable boot@system to [boot] tree"

    out_progress "Done"
    #sleep 1
	
	## this is a little ugly, 66-env -r works properly but remove comment
	## inside the configuration file. It can be confusing to a new user
	## to not have the comments.
	## So, first find the current version of the configuration file and use
	## the classic sed command instead of 66-env.

	BOOT_CONF="$(readlink /etc/66/conf/boot@system/version)"
	BOOT_CONF="${BOOT_CONF}/boot@system"

	oblog "Configure (boot@system) service"
	out_progress "Starting ..."
	
		sed -i "s:^HOSTNAME.*$:HOSTNAME=\!${HOSTNAME}:" ${BOOT_CONF} || die "unable to set HOSTANME"
		sed -i "s:^KEYMAP.*$:KEYMAP=\!${KEYMAP}:" ${BOOT_CONF} || die "unable to set KEYMAP"
		sed -i "s:^TZ.*$:TZ=${ZONE}/${SUBZONE}:" ${BOOT_CONF} || die "unable to set TZ"
    
    oblog "Apply change to the (boot@system) service"
	out_progress "Starting ..."
		
		66-enable -zv3 -t boot -F boot@system || die "unable to apply boot changes"
    
    out_progress "Done"
    
    
    oblog "Create and enable [root] tree"
    out_progress "Starting ..."
    #sleep 2
        66-tree -zv3 -En root || die "unable to create [root] tree"

    out_progress "Done"
    #sleep 1

    oblog "Enable (dbus) (networkmanager) (sddm) (consolekit) services to [root] tree"
    out_progress "Starting ..."
    #sleep 2
     
        66-enable -zv3 -t root dbus networkmanager sddm consolekit || die "unable to enable (dbus) (networkmanager) (sddm) (consolekit) to [root] tree"

    out_progress "Done"
    #sleep 1

    oblog "Create and enable [${NEWUSER}-session] tree"
    out_progress "Starting ..."
    #sleep 2
     
        66-tree -zv3 -nE ${NEWUSER}-session || die "unable to create [${NEWUSER}-session] tree"

    out_progress "Done"
    #sleep 1

    oblog "Configure and enable (boot-user@${NEWUSER}) service to [${NEWUSER}-session] tree"
    out_progress "Starting ..."
    #sleep 2
        66-enable -zv3 -t ${NEWUSER}-session -C -F boot-user@${NEWUSER} || die "unable to enable (boot-user@${NEWUSER}) service to [${NEWUSER}-session] tree"

    out_progress "Done"
    #sleep 1
    
    BOOT_USER="$(readlink /etc/66/conf/boot-user@${NEWUSER}/version)"
	BOOT_USER="${BOOT_USER}/boot-user@${NEWUSER}"
	
	oblog "Configure (boot-user@${NEWUSER}) service"
	out_progress "Starting ..."
    	
    	sed -i "s:^DESKTOP_CMDLINE.*$:DESKTOP_CMDLINE=\!startplasma-x11:" ${BOOT_USER} || die "unable to set DESKTOP_CMDLINE"
	
	out_progress "Done"
	
	oblog "Apply change to the (boot-user@{NEWUSER}) service"
	out_progress "Starting ..."
    	
		66-enable -zv3 -t ${NEWUSER}-session -F boot-user@${NEWUSER} || die "unable to apply (${NEWUSER}-session) changes"
    
    out_progress "Done"
    
    oblog "Create and enable [system] tree"
    out_progress "Starting ..."
    #sleep 2
   
        66-tree -zv3 -ncE system || die "unable to create [system] tree"

    out_progress "Done"
   #sleep 1

    oblog "Enable (sshd) service to [system] tree"
    out_progress "Starting ..."
    #sleep 2
     
        66-enable -zv3 -t system sshd || die "unable to enable (sshd) to [root] tree"

    out_progress "Done"
    #sleep 1

   # oblog "Create and enable [desktop] tree. Set it as the current tree"
   # out_progress "Starting ..."
   # sleep 2
   #     66-tree -v3 -nEc desktop

   # out_progress "Done"
   # sleep 1

   # oblog "Enable (dbus) (networkmanager) (sddm) (consolekit) services to [desktop] tree"
   # out_progress "Starting ..."
   # sleep 2
   #     66-enable -v3 -t desktop dbus networkmanager sddm consolekit

   # out_progress "Done"
   # sleep 1

    oblog "For ${NEWUSER}: Create and enable [${NEWUSER}] tree. Set it as the current user tree"
    out_progress "Starting ..."
   # sleep 2

        su "${NEWUSER}" -c "66-tree -zv3 -nEc ${NEWUSER}"

    out_progress "Done"
    #sleep 1

    oblog "Enable (xdg-user-dirs) (dbus-session@${NEWUSER}) services to [${NEWUSER}] tree"
    out_progress "Starting ..."
    #sleep 2
        su "${NEWUSER}" -c "66-enable -zv3 xdg-user-dirs dbus-session@${NEWUSER}"

    out_progress "Done"
    #sleep 1
}
custo_once config_66

oblog "Configuration completed"