Skip to content
Snippets Groups Projects
customizeChroot 3.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • Eric Vidal's avatar
    Eric Vidal committed
    #!/bin/bash
    ## This script was made for provide obarun environment. This scripts is under license BEER-WARE.
    # "THE BEER-WARE LICENSE" (Revision 42):
    # <eric@obarun.org> wrote this file.  As long as you retain this notice you
    # can do whatever you want with this stuff. If we meet some day, and you think
    # this stuff is worth it, you can buy me a beer in return.   Eric Vidal
    
    #shopt -s extglob
    
    ##		Check is the functions file exits
    
    sourcing(){
    	
    	local list
    	
    	for list in /tmp/obarun-install-tmp/{common_functions,install_functions,install.conf}; do
    		if [[ -f "${list}" ]]; then
    			source "${list}"
    		else
    			echo_error " Missing file : ${list}"
    			exit	
    		fi
    	done
    	
    	unset list
    }
    sourcing
    
    shellopts_save
    shellopts_set_unset "extglob" 0
    
    custo_once() {
    	local _tmp
    	_tmp="/tmp/obarun-install-tmp"
    	
    	if [[ ! -d $_tmp ]]; then
    		mkdir -p -m0750 $_tmp || die " Impossible to create $_tmp"
    	fi
        if [[ ! -e $_tmp/customize.${1} ]]; then
            $1 || die " Cannot execute $_"
            touch $_tmp/customize.${1}
        fi
        unset _tmp
    }
    
    ##		Customize menu
    
    customizeChroot_menu
    
    # reload source file before using changed variable
    source /tmp/obarun-install-tmp/install.conf
    
    custo_once config_custofile
    
    ##		Define resolv.conf
    def_resolv(){
    	define_resolv 
    }
    custo_once def_resolv 
    
    ##		Uncomment server in mirrorlist
    mirrorlist(){
    	echo_display " Uncomment server in mirrorlist"
    	sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
    }
    custo_once mirrorlist 
    
    ##		Pacman stuff
    pac_sync(){
    echo_display " Synchronize database..."
    if [[ ! -d /var/lib/pacman/sync ]]; then 
        pacman -Syy
    else
    	pacman -Sy
    fi
    }
    custo_once pac_sync 
    
    ## Configure pacman.conf
    
    config_pac(){
    	echo_display " Change pacman.conf configuration"
    	sed -i "s:SigLevel = Never.*#:SigLevel = Required DatabaseOptional:" /etc/pacman.conf
    	sed -i "s:#SigLevel = PackageRequired:SigLevel = PackageRequired:" /etc/pacman.conf
    }
    custo_once config_pac
    
    ## Check if gpg exist, if not launch pacman-key and add gpg signature
    custo_once check_gpg
    
    ############################## only modifie this script after this line ############################
    
    ##		Prepare socklog and install socklog
    
    create_log_user(){
    	echo_display " Create user log, add {root,$NEWUSER} at log group"
    	useradd -M -N -s /usr/bin/nologin log
    	gpasswd -a root log
    	gpasswd -a "$NEWUSER" log
    }
    custo_once create_log_user 
    
    install_socklog(){
    	echo_display " Install socklog-obarun"
    	pacman -S socklog-obarun --noconfirm
    }
    custo_once install_socklog
    
    ##		Configure Runit services
    
    config_runit(){
    	echo_display " Create symlink for runit"
    	ln -sf /etc/sv/dbus /etc/runit/runsvdir/base
    	ln -sf /etc/sv/klog /etc/runit/runsvdir/base
    	ln -sf /etc/sv/socklog-unix /etc/runit/runsvdir/base
    	ln -sf /etc/sv/networkmanager /etc/runit/runsvdir/base
    }
    custo_once config_runit
    
    
    rc_local(){
    	sed -i '1s/^/#!\/bin\/bash\n/' /etc/rc.local
    	sed -i '$a/usr/bin/pacopts applytmp' /etc/rc.local
    }
    custo_once rc_local
    
    ##      Configure pulseaudio
    
    config_pulse(){
    	echo "load-module module-device-manager" >> /etc/pulse/default.pa
    }
    custo_once config_pulse
    
    ##		Remove systemd stuff
    
    rm_systemd(){
    	echo_display " Removing systemd stuff"
    	rm -r /usr/lib/systemd
    }
    custo_once rm_systemd
    
    ##		Install bootloader
    
    install_boot(){
    	echo_display " Do you want to install ${green}[syslinux]${reset}${bold} bootloader [y|n] :"
    	reply_answer 
    	if (( ! $? )); then
    		syslinux_menu
    	fi
    }
    custo_once install_boot
    
    shellopts_restore
    
    echo_valid " Customization terminate"