1654 lines
		
	
	
	
		
			43 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			1654 lines
		
	
	
	
		
			43 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Written by Thierry Nuttens
							 | 
						||
| 
								 | 
							
								# Copyright Thierry Nuttens 2010-2011-2012-2013-2014-2015-2016
							 | 
						||
| 
								 | 
							
								# Installation script for the NuTyX system
							 | 
						||
| 
								 | 
							
								# Based on LFS scripts
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function - boot_mesg()
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose:      Sending information from bootup scripts to the console
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Inputs:       $1 is the message
							 | 
						||
| 
								 | 
							
								#               $2 is the colorcode for the console
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Outputs:      Standard Output
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Dependencies: - sed for parsing strings.
							 | 
						||
| 
								 | 
							
								#               - grep for counting string length.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Todo:
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								boot_mesg() {
							 | 
						||
| 
								 | 
							
								        local ECHOPARM=""
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        while true
							 | 
						||
| 
								 | 
							
								        do
							 | 
						||
| 
								 | 
							
								                case "${1}" in
							 | 
						||
| 
								 | 
							
								                        -n)
							 | 
						||
| 
								 | 
							
								                                ECHOPARM=" -n "
							 | 
						||
| 
								 | 
							
								                                shift 1
							 | 
						||
| 
								 | 
							
								                                ;;
							 | 
						||
| 
								 | 
							
								                        -*)
							 | 
						||
| 
								 | 
							
								                                echo "Unknown Option: ${1}"
							 | 
						||
| 
								 | 
							
								                                return 1
							 | 
						||
| 
								 | 
							
								                                ;;
							 | 
						||
| 
								 | 
							
								                        *)
							 | 
						||
| 
								 | 
							
								                                break
							 | 
						||
| 
								 | 
							
								                                ;;
							 | 
						||
| 
								 | 
							
								                esac
							 | 
						||
| 
								 | 
							
								        done
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        ## Figure out the length of what is to be printed to be used
							 | 
						||
| 
								 | 
							
								        ## for warning messages.
							 | 
						||
| 
								 | 
							
								        STRING_LENGTH=$((${#1} + 1))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        # Print the message to the screen
							 | 
						||
| 
								 | 
							
								        ${ECHO} ${ECHOPARM} -e "${2}${1}"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								boot_mesg_flush() {
							 | 
						||
| 
								 | 
							
								        # Reset STRING_LENGTH for next message
							 | 
						||
| 
								 | 
							
								        STRING_LENGTH="0"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								boot_log() {
							 | 
						||
| 
								 | 
							
								        # Left in for backwards compatibility
							 | 
						||
| 
								 | 
							
								        :
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								echo_ok() {
							 | 
						||
| 
								 | 
							
								        ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRACKET}[${SUCCESS}  OK  ${BRACKET}]"
							 | 
						||
| 
								 | 
							
								        ${ECHO} -e "${NORMAL}"
							 | 
						||
| 
								 | 
							
								        boot_mesg_flush
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								echo_info() {
							 | 
						||
| 
								 | 
							
								        ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRACKET}[${INFO} INFO ${BRACKET}]"
							 | 
						||
| 
								 | 
							
								        ${ECHO} -e "${NORMAL}"
							 | 
						||
| 
								 | 
							
								        boot_mesg_flush
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								echo_failure() {
							 | 
						||
| 
								 | 
							
								        ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRACKET}[${FAILURE} FAIL ${BRACKET}]"
							 | 
						||
| 
								 | 
							
								        ${ECHO} -e "${NORMAL}"
							 | 
						||
| 
								 | 
							
								        boot_mesg_flush
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								echo_warning() {
							 | 
						||
| 
								 | 
							
								        ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRACKET}[${WARNING} WARN ${BRACKET}]"
							 | 
						||
| 
								 | 
							
								        ${ECHO} -e "${NORMAL}"
							 | 
						||
| 
								 | 
							
								        boot_mesg_flush
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								print_error_msg() {
							 | 
						||
| 
								 | 
							
								        echo_failure
							 | 
						||
| 
								 | 
							
									ERREUR="yes"
							 | 
						||
| 
								 | 
							
								        # $i is inherited by the rc script
							 | 
						||
| 
								 | 
							
								        boot_mesg -n " FAILURE:\n\n You should not read this error.\n\n" ${FAILURE}
							 | 
						||
| 
								 | 
							
								        boot_mesg -n " It means something went wrong with the installation"
							 | 
						||
| 
								 | 
							
								        boot_mesg -n " of ${i} "
							 | 
						||
| 
								 | 
							
								        boot_mesg_flush
							 | 
						||
| 
								 | 
							
								        boot_mesg -n " Thanks to inform us"
							 | 
						||
| 
								 | 
							
								        boot_mesg -n " via the website http://www.nutyx.org."
							 | 
						||
| 
								 | 
							
								        boot_mesg " Thanks again for your collaboration.\n"
							 | 
						||
| 
								 | 
							
								        boot_mesg_flush
							 | 
						||
| 
								 | 
							
								        boot_mesg -n "Press Enter to continue..." ${INFO}
							 | 
						||
| 
								 | 
							
								        boot_mesg "" ${NORMAL}
							 | 
						||
| 
								 | 
							
								        read ENTER
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
									exit 1
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function - log_success_msg "message"
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose: Print a success message
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Inputs: $@ - Message
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Outputs: Text output to screen
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Dependencies: echo
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Todo: logging
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								log_success_msg() {
							 | 
						||
| 
								 | 
							
								        ${ECHO} -n -e "${BOOTMESG_PREFIX}${@}"
							 | 
						||
| 
								 | 
							
								        ${ECHO} -e "${SET_COL}""${BRACKET}""[""${SUCCESS}""  OK
							 | 
						||
| 
								 | 
							
								""${BRACKET}""]""${NORMAL}"
							 | 
						||
| 
								 | 
							
								        return 0
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function - log_failure_msg "message"
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose: Print a failure message
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Inputs: $@ - Message
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Outputs: Text output to screen
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Dependencies: echo
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Todo: logging
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								log_failure_msg() {
							 | 
						||
| 
								 | 
							
								        ${ECHO} -n -e "${BOOTMESG_PREFIX}${@}"
							 | 
						||
| 
								 | 
							
								        ${ECHO} -e "${SET_COL}""${BRACKET}""[""${FAILURE}"" FAIL
							 | 
						||
| 
								 | 
							
								""${BRACKET}""]""${NORMAL}"
							 | 
						||
| 
								 | 
							
								        return 0
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function - log_warning_msg "message"
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose: print a warning message
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Inputs: $@ - Message
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Outputs: Text output to screen
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Dependencies: echo
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Todo: logging
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								log_warning_msg() {
							 | 
						||
| 
								 | 
							
								        ${ECHO} -n -e "${BOOTMESG_PREFIX}${@}"
							 | 
						||
| 
								 | 
							
								        ${ECHO} -e "${SET_COL}""${BRACKET}""[""${WARNING}"" WARN
							 | 
						||
| 
								 | 
							
								""${BRACKET}""]""${NORMAL}"
							 | 
						||
| 
								 | 
							
								        return 0
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function - unmountall
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose:	unmount all the mounted disks and partitions
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Inputs:	$1 the full path of the Distro
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Outputs:	Standard Output
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Dependencies: chroot
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								unmountall() {
							 | 
						||
| 
								 | 
							
								if [ -d "$DEPOT_CD/depot" ]; then
							 | 
						||
| 
								 | 
							
									umount ${{FOLDER}/${DEPOT}
							 | 
						||
| 
								 | 
							
									umount  `cat /tmp/depot`
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								umount ${FOLDER}/run
							 | 
						||
| 
								 | 
							
								umount ${FOLDER}/dev/pts
							 | 
						||
| 
								 | 
							
								umount ${FOLDER}/dev
							 | 
						||
| 
								 | 
							
								umount ${FOLDER}/proc
							 | 
						||
| 
								 | 
							
								umount ${FOLDER}/sys
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function - setup_chroot
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose:	Enter the NuTyX Distribution
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Inputs:	$1 the full path of the Distro
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Outputs:	Standard Output
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Dependencies: chroot
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								setup_chroot() {
							 | 
						||
| 
								 | 
							
								cp /etc/resolv.conf ${FOLDER}/etc/resolv.conf
							 | 
						||
| 
								 | 
							
								mount --bind /dev ${FOLDER}/dev
							 | 
						||
| 
								 | 
							
								mount -t devpts devpts ${FOLDER}/dev/pts
							 | 
						||
| 
								 | 
							
								mount -t proc proc ${FOLDER}/proc
							 | 
						||
| 
								 | 
							
								mount -t sysfs sysfs ${FOLDER}/sys
							 | 
						||
| 
								 | 
							
								mount -t tmpfs tmpfs ${FOLDER}/run
							 | 
						||
| 
								 | 
							
								if [ -h ${FOLDER}/dev/shm ]; then
							 | 
						||
| 
								 | 
							
								   mkdir -p ${FOLDER}/$(readlink ${FOLDER}/dev/shm)
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								enter_chroot() {
							 | 
						||
| 
								 | 
							
								echo "
							 | 
						||
| 
								 | 
							
								******************************
							 | 
						||
| 
								 | 
							
								Chroot path: $DEVICE
							 | 
						||
| 
								 | 
							
								******************************"
							 | 
						||
| 
								 | 
							
								chroot ${FOLDER} /usr/bin/env -i \
							 | 
						||
| 
								 | 
							
								HOME=/root \
							 | 
						||
| 
								 | 
							
								TERM="$TERM" \
							 | 
						||
| 
								 | 
							
								PS1='\u:\w\$ ' \
							 | 
						||
| 
								 | 
							
								/bin/bash --login
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function - install_pkg()
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose:      Install the selected package
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Inputs:       $1 is the package
							 | 
						||
| 
								 | 
							
								#               $2 is the group
							 | 
						||
| 
								 | 
							
								#		$3 Option to install, normally nothing except for grub
							 | 
						||
| 
								 | 
							
								# Outputs:      Standard Output
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Dependencies: - wget
							 | 
						||
| 
								 | 
							
								#               - boot_mesg
							 | 
						||
| 
								 | 
							
								#               - pkgadd
							 | 
						||
| 
								 | 
							
								# Todo:
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								install_pkg() {
							 | 
						||
| 
								 | 
							
									if $TMP/usr/bin/pkginfo -r $FOLDER -i| grep "^$1 " > /dev/null; then
							 | 
						||
| 
								 | 
							
										boot_mesg "$1 is already install on $DEVICE..."
							 | 
						||
| 
								 | 
							
										echo_info
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										packagefileToDownload=`getPackageName ${1}`
							 | 
						||
| 
								 | 
							
										boot_mesg "Downloading $1..."
							 | 
						||
| 
								 | 
							
										wget ${DEPOT_BASE}/${1}/$packagefileToDownload  -O $TMP/$packagefileToDownload > /dev/null 2>&1
							 | 
						||
| 
								 | 
							
										echo_info
							 | 
						||
| 
								 | 
							
										# Installing the package
							 | 
						||
| 
								 | 
							
										$TMP/usr/bin/pkgadd -r $FOLDER -i $packagefileToDownload || print_error_msg
							 | 
						||
| 
								 | 
							
										echo_ok	
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function Check_DiskSpace
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose:      Check the Available space after the using amont
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Inputs:       $1: Mount point
							 | 
						||
| 
								 | 
							
								#	        $2: Amount in Kbytes going to be used
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Return:       status: 0 when ok
							 | 
						||
| 
								 | 
							
								#	                1 not ok
							 | 
						||
| 
								 | 
							
								# Todo:
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								check_diskspace() {
							 | 
						||
| 
								 | 
							
									# df|grep "$1"|awk '{print $4}'
							 | 
						||
| 
								 | 
							
									let MinSize=$2+100
							 | 
						||
| 
								 | 
							
									let Amoung=`df|grep $FOLDER |awk '{print $(NF-2)}'`/1024 || exit 1
							 | 
						||
| 
								 | 
							
									let Amoung=$Amoung-$MinSize
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									status="0"
							 | 
						||
| 
								 | 
							
									if [ $Amoung -lt 0 ]; then
							 | 
						||
| 
								 | 
							
										echo "Not enough space for the installation"
							 | 
						||
| 
								 | 
							
										echo_failure
							 | 
						||
| 
								 | 
							
										status="1"
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										echo "Space remind after install: $Amoung Mbytes"
							 | 
						||
| 
								 | 
							
										echo_info
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
									if [ $status == "1" ]; then
							 | 
						||
| 
								 | 
							
										check_availablespace $1
							 | 
						||
| 
								 | 
							
										echo "The installation needs $BaseInstall Mbytes minimum"
							 | 
						||
| 
								 | 
							
										end
							 | 
						||
| 
								 | 
							
										exit 1
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								# Function check_availablespace
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Purpose:      Printout the Available space on the Mount point
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Inputs:       $1: Mount point
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Output:       Standard Output
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Todo:
							 | 
						||
| 
								 | 
							
								#*******************************************************************************
							 | 
						||
| 
								 | 
							
								check_availablespace() {
							 | 
						||
| 
								 | 
							
									let TotAmoung=`df|grep "$1"|awk '{print $4}'`/1024 || exit 1
							 | 
						||
| 
								 | 
							
									echo "You have at the moment: ${TotAmoung} Mbytes on the destination disk"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								error() {
							 | 
						||
| 
								 | 
							
									echo ""
							 | 
						||
| 
								 | 
							
									echo " $1"
							 | 
						||
| 
								 | 
							
									echo ""
							 | 
						||
| 
								 | 
							
									rm -rf $TMP
							 | 
						||
| 
								 | 
							
									exit 1
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								end() {
							 | 
						||
| 
								 | 
							
									if [ "$ERREUR" == "yes" ]; then
							 | 
						||
| 
								 | 
							
										if [ ! -f $TMP/depot ]; then
							 | 
						||
| 
								 | 
							
											rm -r ${FOLDER}/${DEPOT}
							 | 
						||
| 
								 | 
							
											boot_mesg "Cleaning up temporary files.."
							 | 
						||
| 
								 | 
							
											boot_mesg "Please correct and start again"
							 | 
						||
| 
								 | 
							
										fi
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
									cd ~
							 | 
						||
| 
								 | 
							
									unmountall $FOLDER > /dev/null 2>&1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									rm -rf $TMP
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#****************************************************************************
							 | 
						||
| 
								 | 
							
								# Function expect
							 | 
						||
| 
								 | 
							
								# 
							 | 
						||
| 
								 | 
							
								# Purpose:	Check that the answer is nothing else then the supply
							 | 
						||
| 
								 | 
							
								#		arguments
							 | 
						||
| 
								 | 
							
								# Inputs:	$1: answer 1
							 | 
						||
| 
								 | 
							
								#		$2: answer 2
							 | 
						||
| 
								 | 
							
								#		$3: The question to ask
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Output:	Standard Output
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#****************************************************************************
							 | 
						||
| 
								 | 
							
								expect(){
							 | 
						||
| 
								 | 
							
								# echo -n "$3"
							 | 
						||
| 
								 | 
							
								# read answer
							 | 
						||
| 
								 | 
							
								while [ "$answer" != "o" ] && [ "$answer" != "n" ]; do
							 | 
						||
| 
								 | 
							
									echo -n "$3"
							 | 
						||
| 
								 | 
							
									read answer
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#****************************************************************************
							 | 
						||
| 
								 | 
							
								# Function getPackageName
							 | 
						||
| 
								 | 
							
								# 
							 | 
						||
| 
								 | 
							
								# Purpose:	Get the fullname of the package
							 | 
						||
| 
								 | 
							
								#		directory
							 | 
						||
| 
								 | 
							
								# Inputs:	$1 is the package name
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Output:       fullname of the archive without url
							 | 
						||
| 
								 | 
							
								#               something like: cpio1414074943i686.cards.tar.xz
							 | 
						||
| 
								 | 
							
								#****************************************************************************
							 | 
						||
| 
								 | 
							
								getPackageName() {
							 | 
						||
| 
								 | 
							
									local BUILD_DATE EXT HEAD
							 | 
						||
| 
								 | 
							
									wget ${DEPOT_BASE}/${1}/.PKGREPO  -O $TMP/.PKGREPO > /dev/null  2>&1
							 | 
						||
| 
								 | 
							
									HEAD=`head -1 $TMP/.PKGREPO`
							 | 
						||
| 
								 | 
							
									if [ "${HEAD:10:1}" == "#" ]; then
							 | 
						||
| 
								 | 
							
										BUILD_DATE="`echo $HEAD|cut -d "#" -f1`"
							 | 
						||
| 
								 | 
							
										EXT="`echo $HEAD|cut -d "#" -f2`"
							 | 
						||
| 
								 | 
							
										echo "${1}${BUILD_DATE}${ARCH}${EXT}"
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								install_base() {
							 | 
						||
| 
								 | 
							
								for i in \
							 | 
						||
| 
								 | 
							
								nutyx acl attr bash bc binutils bzip2 coreutils curl \
							 | 
						||
| 
								 | 
							
								diffutils expat file findutils flex gcc gdbm \
							 | 
						||
| 
								 | 
							
								gettext glibc gmp gperf grep gzip inetutils kbd lzo \
							 | 
						||
| 
								 | 
							
								libarchive libcap libpipeline mpc mpfr ncurses openssl pam \
							 | 
						||
| 
								 | 
							
								procps-ng psmisc readline sed shadow util-linux xz zlib \
							 | 
						||
| 
								 | 
							
								cards
							 | 
						||
| 
								 | 
							
								do 
							 | 
						||
| 
								 | 
							
									install_pkg "$i"
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_blfs_bootscripts() {
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/${FOLDER}/etc/blfs-bootscripts ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								echo "scripts=blfs-bootscripts
							 | 
						||
| 
								 | 
							
								scriptsversion=20150924" > ${FOLDER}/etc/blfs-bootscripts
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_etc_bashrc() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="bashrc"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								  ${FOLDER}/etc/$FILE
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Begin /etc/bashrc
							 | 
						||
| 
								 | 
							
								# Written for Beyond Linux From Scratch
							 | 
						||
| 
								 | 
							
								# by James Robertson <jameswrobertson@earthlink.net>
							 | 
						||
| 
								 | 
							
								# updated by Bruce Dubbs <bdubbs@linuxfromscratch.org>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# System wide aliases and functions.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# System wide environment variables and startup programs should go into
							 | 
						||
| 
								 | 
							
								# /etc/profile.  Personal environment variables and startup programs
							 | 
						||
| 
								 | 
							
								# should go into ~/.bash_profile.  Personal aliases and functions should
							 | 
						||
| 
								 | 
							
								# go into ~/.bashrc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Provides a colored /bin/ls command.  Used in conjunction with code in
							 | 
						||
| 
								 | 
							
								# /etc/profile.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								alias ls='ls --color=auto'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Provides prompt for non-login shells, specifically shells started
							 | 
						||
| 
								 | 
							
								# in the X environment. [Review the LFS archive thread titled
							 | 
						||
| 
								 | 
							
								# PS1 Environment Variable for a great case study behind this script
							 | 
						||
| 
								 | 
							
								# addendum.]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NORMAL="\[\e[0m\]"
							 | 
						||
| 
								 | 
							
								RED="\[\e[1;31m\]"
							 | 
						||
| 
								 | 
							
								GREEN="\[\e[1;32m\]"
							 | 
						||
| 
								 | 
							
								WHITE="\[\e[1;37m\]"
							 | 
						||
| 
								 | 
							
								INFOMACHINE="`date +%H:%M` `uname -m` `uname -r` `whoami`@`uname -n`"
							 | 
						||
| 
								 | 
							
								prompt_command() {
							 | 
						||
| 
								 | 
							
								# Sauvegarde de la pos courante
							 | 
						||
| 
								 | 
							
								tput sc
							 | 
						||
| 
								 | 
							
								# Calcul de la largeur
							 | 
						||
| 
								 | 
							
								let backwash=$(tput cols)-$(echo $INFOMACHINE | wc -m)-2
							 | 
						||
| 
								 | 
							
								# Pos des curseurs à la position Y=0, X=longueur calculée
							 | 
						||
| 
								 | 
							
								tput cup 0 ${backwash}
							 | 
						||
| 
								 | 
							
								# Spécifie la couleur et la casse de la police
							 | 
						||
| 
								 | 
							
								tput setaf 4; tput bold
							 | 
						||
| 
								 | 
							
								# Affiche le chemin entre crochets
							 | 
						||
| 
								 | 
							
								echo -n "["
							 | 
						||
| 
								 | 
							
								# Specifie la couleur du chemin
							 | 
						||
| 
								 | 
							
								tput setaf 6
							 | 
						||
| 
								 | 
							
								# Affiche le chemin complet
							 | 
						||
| 
								 | 
							
								echo -n "$INFOMACHINE"
							 | 
						||
| 
								 | 
							
								tput setaf 4; tput bold
							 | 
						||
| 
								 | 
							
								# Affiche le crochet fermé
							 | 
						||
| 
								 | 
							
								echo -n "]"
							 | 
						||
| 
								 | 
							
								# Remet le curseur à sa place
							 | 
						||
| 
								 | 
							
								tput rc
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PROMPT_COMMAND=prompt_command
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								case $TERM in
							 | 
						||
| 
								 | 
							
								        xterm|rxvt*)
							 | 
						||
| 
								 | 
							
								                TITLEBAR='\[\033]0;\u@\h \007\]'
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								        *)
							 | 
						||
| 
								 | 
							
								                TITLEBAR=''
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								esac
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [[ $EUID == 0 ]] ; then
							 | 
						||
| 
								 | 
							
								  PS1="$TITLEBAR$RED\u [ $NORMAL\w$RED ]# $NORMAL"
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								  PS1="$TITLEBAR$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								# End /etc/bashrc
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_rc_site() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="rc.site"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/sysconfig/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/sysconfig ] && mkdir -pv ${FOLDER}/etc/sysconfig
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								  ${FOLDER}/etc/sysconfig/$FILE
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/sysconfig/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# rc.site                                                                            [20:15 i686 3.18.11-NuTyX-iso thierry@nutyx]
							 | 
						||
| 
								 | 
							
								# Optional parameters for boot scripts.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Distro Information
							 | 
						||
| 
								 | 
							
								# These values, if specified here, override the defaults
							 | 
						||
| 
								 | 
							
								#DISTRO="Linux From Scratch" # The distro name
							 | 
						||
| 
								 | 
							
								#DISTRO_CONTACT="lfs-dev@linuxfromscratch.org" # Bug report address
							 | 
						||
| 
								 | 
							
								#DISTRO_MINI="LFS" # Short name used in filenames for distro config
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Define custom colors used in messages printed to the screen
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Please consult `man console_codes` for more information
							 | 
						||
| 
								 | 
							
								# under the "ECMA-48 Set Graphics Rendition" section
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Warning: when switching from a 8bit to a 9bit font,
							 | 
						||
| 
								 | 
							
								# the linux console will reinterpret the bold (1;) to
							 | 
						||
| 
								 | 
							
								# the top 256 glyphs of the 9bit font.  This does
							 | 
						||
| 
								 | 
							
								# not affect framebuffer consoles
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# These values, if specified here, override the defaults
							 | 
						||
| 
								 | 
							
								#BRACKET="\\033[1;34m" # Blue
							 | 
						||
| 
								 | 
							
								#FAILURE="\\033[1;31m" # Red
							 | 
						||
| 
								 | 
							
								#INFO="\\033[1;36m"    # Cyan
							 | 
						||
| 
								 | 
							
								#NORMAL="\\033[0;39m"  # Grey
							 | 
						||
| 
								 | 
							
								#SUCCESS="\\033[1;32m" # Green
							 | 
						||
| 
								 | 
							
								#WARNING="\\033[1;33m" # Yellow
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Use a colored prefix
							 | 
						||
| 
								 | 
							
								# These values, if specified here, override the defaults
							 | 
						||
| 
								 | 
							
								#BMPREFIX="     "
							 | 
						||
| 
								 | 
							
								#SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL}"
							 | 
						||
| 
								 | 
							
								#FAILURE_PREFIX="${FAILURE}*****${NORMAL}"
							 | 
						||
| 
								 | 
							
								#WARNING_PREFIX="${WARNING} *** ${NORMAL}"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Interactive startup
							 | 
						||
| 
								 | 
							
								#IPROMPT="yes" # Whether to display the interactive boot prompt
							 | 
						||
| 
								 | 
							
								#itime="3"    # The amount of time (in seconds) to display the prompt
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# The total length of the distro welcome string, without escape codes
							 | 
						||
| 
								 | 
							
								#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
							 | 
						||
| 
								 | 
							
								#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# The total length of the interactive string, without escape codes
							 | 
						||
| 
								 | 
							
								#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
							 | 
						||
| 
								 | 
							
								#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Set scripts to skip the file system check on reboot
							 | 
						||
| 
								 | 
							
								#FASTBOOT=yes
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Skip reading from the console
							 | 
						||
| 
								 | 
							
								#HEADLESS=yes
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Write out fsck progress if yes
							 | 
						||
| 
								 | 
							
								#VERBOSE_FSCK=no
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Speed up boot without waiting for settle in udev
							 | 
						||
| 
								 | 
							
								#OMIT_UDEV_SETTLE=y
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Speed up boot without waiting for settle in udev_retry
							 | 
						||
| 
								 | 
							
								#OMIT_UDEV_RETRY_SETTLE=yes
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Skip cleaning /tmp if yes
							 | 
						||
| 
								 | 
							
								#SKIPTMPCLEAN=no
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# For setclock
							 | 
						||
| 
								 | 
							
								#UTC=1
							 | 
						||
| 
								 | 
							
								#CLOCKPARAMS=
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# For consolelog
							 | 
						||
| 
								 | 
							
								#LOGLEVEL=5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# For network
							 | 
						||
| 
								 | 
							
								#HOSTNAME=mylfs
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Delay between TERM and KILL signals at shutdown
							 | 
						||
| 
								 | 
							
								#KILLDELAY=3
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Optional sysklogd parameters
							 | 
						||
| 
								 | 
							
								#SYSKLOGD_PARMS="-m 0"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Console parameters
							 | 
						||
| 
								 | 
							
								#UNICODE=1
							 | 
						||
| 
								 | 
							
								#KEYMAP="de-latin1"
							 | 
						||
| 
								 | 
							
								#KEYMAP_CORRECTIONS="euro2"
							 | 
						||
| 
								 | 
							
								#FONT="lat0-16 -m 8859-15"
							 | 
						||
| 
								 | 
							
								#LEGACY_CHARSET=
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_udev_retry() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="udev_retry"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/sysconfig/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/sysconfig ] && mkdir -pv ${FOLDER}/etc/sysconfig
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/sysconfig/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/sysconfig/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/sysconfig/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								########################################################################
							 | 
						||
| 
								 | 
							
								# Begin /etc/sysconfig/udev_retry
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Description : udev_retry script configuration
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Authors     :
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Version     : 00.00
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Notes       : Each subsystem that may need to be re-triggered after mountfs
							 | 
						||
| 
								 | 
							
								#               runs should be listed in this file.  Probable subsystems to be
							 | 
						||
| 
								 | 
							
								#               listed here are rtc (due to /var/lib/hwclock/adjtime) and sound
							 | 
						||
| 
								 | 
							
								#               (due to both /var/lib/alsa/asound.state and /usr/sbin/alsactl).
							 | 
						||
| 
								 | 
							
								#               Entries are whitespace-separated.
							 | 
						||
| 
								 | 
							
								########################################################################
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rtc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End /etc/sysconfig/udev_retry
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_createfiles() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="createfiles"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/sysconfig/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/sysconfig ] && mkdir -pv ${FOLDER}/etc/sysconfig
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/sysconfig/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/sysconfig/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								########################################################################
							 | 
						||
| 
								 | 
							
								# Begin /etc/sysconfig/createfiles
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Description : Createfiles script config file
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Authors     :
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Version     : 00.00
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Notes       : The syntax of this file is as follows:
							 | 
						||
| 
								 | 
							
								# 		if type is equal to "file" or "dir"
							 | 
						||
| 
								 | 
							
								#  		<filename> <type> <permissions> <user> <group>
							 | 
						||
| 
								 | 
							
								# 		if type is equal to "dev"
							 | 
						||
| 
								 | 
							
								#  		<filename> <type> <permissions> <user> <group> <devtype> 
							 | 
						||
| 
								 | 
							
								#             <major> <minor>
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# 		<filename> is the name of the file which is to be created
							 | 
						||
| 
								 | 
							
								# 		<type> is either file, dir, or dev.
							 | 
						||
| 
								 | 
							
								#   			file creates a new file
							 | 
						||
| 
								 | 
							
								#   			dir creates a new directory
							 | 
						||
| 
								 | 
							
								#   			dev creates a new device
							 | 
						||
| 
								 | 
							
								# 		<devtype> is either block, char or pipe
							 | 
						||
| 
								 | 
							
								#   			block creates a block device
							 | 
						||
| 
								 | 
							
								#   			char creates a character deivce
							 | 
						||
| 
								 | 
							
								#   			pipe creates a pipe, this will ignore the <major> and 
							 | 
						||
| 
								 | 
							
								#           <minor> fields
							 | 
						||
| 
								 | 
							
								# 		<major> and <minor> are the major and minor numbers used for 
							 | 
						||
| 
								 | 
							
								#     the device.
							 | 
						||
| 
								 | 
							
								########################################################################
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End /etc/sysconfig/createfiles
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_modules() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="modules"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/sysconfig/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/sysconfig ] && mkdir -pv ${FOLDER}/etc/sysconfig
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/sysconfig/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/sysconfig/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								########################################################################
							 | 
						||
| 
								 | 
							
								# Begin /etc/sysconfig/modules
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Description : Module auto-loading configuration
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Authors     :
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Version     : 00.00
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Notes       : The syntax of this file is as follows:
							 | 
						||
| 
								 | 
							
								#  		<module> [<arg1> <arg2> ...]
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Each module should be on its own line, and any options that you want
							 | 
						||
| 
								 | 
							
								# passed to the module should follow it.  The line deliminator is either
							 | 
						||
| 
								 | 
							
								# a space or a tab.
							 | 
						||
| 
								 | 
							
								########################################################################
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End /etc/sysconfig/modules
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_mouse() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="mouse"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/sysconfig ] && mkdir -pv ${FOLDER}/etc/sysconfig
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/sysconfig/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/sysconfig/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								MDEVICE="/dev/input/mice"
							 | 
						||
| 
								 | 
							
								PROTOCOL="imps2"
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_inputrc() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="inputrc"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Begin /etc/inputrc
							 | 
						||
| 
								 | 
							
								# Modified by Chris Lynn <roryo@roryo.dynup.net>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Allow the command prompt to wrap to the next line
							 | 
						||
| 
								 | 
							
								set horizontal-scroll-mode Off
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Enable 8bit input
							 | 
						||
| 
								 | 
							
								set meta-flag On
							 | 
						||
| 
								 | 
							
								set input-meta On
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Turns off 8th bit stripping
							 | 
						||
| 
								 | 
							
								set convert-meta Off
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Keep the 8th bit for display
							 | 
						||
| 
								 | 
							
								set output-meta On
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# none, visible or audible
							 | 
						||
| 
								 | 
							
								set bell-style none
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# All of the following map the escape sequence of the value
							 | 
						||
| 
								 | 
							
								# contained in the 1st argument to the readline specific functions
							 | 
						||
| 
								 | 
							
								"\eOd": backward-word
							 | 
						||
| 
								 | 
							
								"\eOc": forward-word
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# for linux console
							 | 
						||
| 
								 | 
							
								"\e[1~": beginning-of-line
							 | 
						||
| 
								 | 
							
								"\e[4~": end-of-line
							 | 
						||
| 
								 | 
							
								"\e[5~": beginning-of-history
							 | 
						||
| 
								 | 
							
								"\e[6~": end-of-history
							 | 
						||
| 
								 | 
							
								"\e[3~": delete-char
							 | 
						||
| 
								 | 
							
								"\e[2~": quoted-insert
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# for xorg-term
							 | 
						||
| 
								 | 
							
								"\eOH": beginning-of-line
							 | 
						||
| 
								 | 
							
								"\eOF": end-of-line
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# for Konsole
							 | 
						||
| 
								 | 
							
								"\e[H": beginning-of-line
							 | 
						||
| 
								 | 
							
								"\e[F": end-of-line
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End /etc/inputrc 
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_hosts() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="hosts"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								  cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								  ${FOLDER}/etc/$FILE
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Begin /etc/hosts
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								127.0.0.1 localhost.localdomain localhost
							 | 
						||
| 
								 | 
							
								127.0.0.1 nutyx
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End /etc/hosts
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_shells() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="shells"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								  cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								  ${FOLDER}/etc/$FILE
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Begin /etc/shells
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/bin/sh
							 | 
						||
| 
								 | 
							
								/bin/bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End /etc/shells
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_umask_sh() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="umask.sh"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/profile.d/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/profile.d ] && mkdir -pv ${FOLDER}/etc/profile.d
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/profile.d/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/profile.d/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# By default we want the umask to get set.
							 | 
						||
| 
								 | 
							
								if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then
							 | 
						||
| 
								 | 
							
								  umask 002
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								  umask 022
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_readline_sh() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="readline.sh"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/profile.d/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/profile.d ] && mkdir -pv ${FOLDER}/etc/profile.d
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/profile.d/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/profile.d/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Setup the INPUTRC environment variable.
							 | 
						||
| 
								 | 
							
								if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then
							 | 
						||
| 
								 | 
							
								        INPUTRC=/etc/inputrc
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								export INPUTRC
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_extrapaths_sh() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="extrapaths.sh"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/profile.d/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/profile.d ] && mkdir -pv ${FOLDER}/etc/profile.d
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/profile.d/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/profile.d/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								if [ -d /usr/local/lib/pkgconfig ] ; then
							 | 
						||
| 
								 | 
							
								        pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								if [ -d /usr/local/bin ]; then
							 | 
						||
| 
								 | 
							
								        pathprepend /usr/local/bin
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then
							 | 
						||
| 
								 | 
							
								        pathprepend /usr/local/sbin
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ -d ~/bin ]; then
							 | 
						||
| 
								 | 
							
								        pathprepend ~/bin
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								#if [ $EUID -gt 99 ]; then
							 | 
						||
| 
								 | 
							
								#        pathappend .
							 | 
						||
| 
								 | 
							
								#fi
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_dircolors_sh() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="dircolors.sh"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/profile.d/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/profile.d ] && mkdir -pv ${FOLDER}/etc/profile.d
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/profile.d/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/profile.d/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Setup for /bin/ls to support color, the alias is in /etc/bashrc.
							 | 
						||
| 
								 | 
							
								if [ -f "/etc/dircolors" ] ; then
							 | 
						||
| 
								 | 
							
								        eval $(dircolors -b /etc/dircolors)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if [ -f "$HOME/.dircolors" ] ; then
							 | 
						||
| 
								 | 
							
								                eval $(dircolors -b $HOME/.dircolors)
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								alias ls='ls --color=auto'
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_profile() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="profile"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Begin /etc/profile
							 | 
						||
| 
								 | 
							
								# Written for Beyond Linux From Scratch
							 | 
						||
| 
								 | 
							
								# by James Robertson <jameswrobertson@earthlink.net>
							 | 
						||
| 
								 | 
							
								# modifications by Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# System wide environment variables and startup programs.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# System wide aliases and functions should go in /etc/bashrc.  Personal
							 | 
						||
| 
								 | 
							
								# environment variables and startup programs should go into
							 | 
						||
| 
								 | 
							
								# ~/.bash_profile.  Personal aliases and functions should go into
							 | 
						||
| 
								 | 
							
								# ~/.bashrc.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Functions to help us manage paths.  Second argument is the name of the
							 | 
						||
| 
								 | 
							
								# path variable to be modified (default: PATH)
							 | 
						||
| 
								 | 
							
								pathremove () {
							 | 
						||
| 
								 | 
							
								        local IFS=':'
							 | 
						||
| 
								 | 
							
								        local NEWPATH
							 | 
						||
| 
								 | 
							
								        local DIR
							 | 
						||
| 
								 | 
							
								        local PATHVARIABLE=${2:-PATH}
							 | 
						||
| 
								 | 
							
								        for DIR in ${!PATHVARIABLE} ; do
							 | 
						||
| 
								 | 
							
								                if [ "$DIR" != "$1" ] ; then
							 | 
						||
| 
								 | 
							
								                  NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
							 | 
						||
| 
								 | 
							
								                fi
							 | 
						||
| 
								 | 
							
								        done
							 | 
						||
| 
								 | 
							
								        export $PATHVARIABLE="$NEWPATH"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								pathprepend () {
							 | 
						||
| 
								 | 
							
								        pathremove $1 $2
							 | 
						||
| 
								 | 
							
								        local PATHVARIABLE=${2:-PATH}
							 | 
						||
| 
								 | 
							
								        export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								pathappend () {
							 | 
						||
| 
								 | 
							
								        pathremove $1 $2
							 | 
						||
| 
								 | 
							
								        local PATHVARIABLE=${2:-PATH}
							 | 
						||
| 
								 | 
							
								        export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export -f pathremove pathprepend pathappend
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Set the initial path
							 | 
						||
| 
								 | 
							
								export PATH=/usr/bin:/bin:/usr/sbin:/sbin
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ $EUID -eq 0 ] ; then
							 | 
						||
| 
								 | 
							
								        unset HISTFILE
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Setup some environment variables.
							 | 
						||
| 
								 | 
							
								export HISTSIZE=1000
							 | 
						||
| 
								 | 
							
								export HISTIGNORE="&:[bf]g:exit"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Set some defaults for graphical systems
							 | 
						||
| 
								 | 
							
								export XDG_DATA_DIRS=/usr/share/
							 | 
						||
| 
								 | 
							
								export XDG_CONFIG_DIRS=/etc/xdg/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Setup a red prompt for root and a green one for users.
							 | 
						||
| 
								 | 
							
								NORMAL="\[\e[0m\]"
							 | 
						||
| 
								 | 
							
								RED="\[\e[1;31m\]"
							 | 
						||
| 
								 | 
							
								GREEN="\[\e[1;32m\]"
							 | 
						||
| 
								 | 
							
								if [[ $EUID == 0 ]] ; then
							 | 
						||
| 
								 | 
							
								  PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								  PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for script in /etc/profile.d/*.sh ; do
							 | 
						||
| 
								 | 
							
								        if [ -r $script ] ; then
							 | 
						||
| 
								 | 
							
								                . $script
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								unset script RED GREEN NORMAL
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End /etc/profile
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_group() {
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/group ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/group << "EOF"
							 | 
						||
| 
								 | 
							
								root:x:0:
							 | 
						||
| 
								 | 
							
								bin:x:1:
							 | 
						||
| 
								 | 
							
								sys:x:2:
							 | 
						||
| 
								 | 
							
								kmem:x:3:
							 | 
						||
| 
								 | 
							
								tape:x:4:
							 | 
						||
| 
								 | 
							
								tty:x:5:
							 | 
						||
| 
								 | 
							
								daemon:x:6:
							 | 
						||
| 
								 | 
							
								floppy:x:7:
							 | 
						||
| 
								 | 
							
								disk:x:8:
							 | 
						||
| 
								 | 
							
								lp:x:9:
							 | 
						||
| 
								 | 
							
								dialout:x:10:
							 | 
						||
| 
								 | 
							
								audio:x:11:gdm
							 | 
						||
| 
								 | 
							
								video:x:12:gdm
							 | 
						||
| 
								 | 
							
								utmp:x:13:
							 | 
						||
| 
								 | 
							
								usb:x:14:
							 | 
						||
| 
								 | 
							
								cdrom:x:15:
							 | 
						||
| 
								 | 
							
								adm:x:16:
							 | 
						||
| 
								 | 
							
								atd:x:17:
							 | 
						||
| 
								 | 
							
								messagebus:x:18:
							 | 
						||
| 
								 | 
							
								lpadmin:x:19:
							 | 
						||
| 
								 | 
							
								named:x:20:
							 | 
						||
| 
								 | 
							
								gdm:x:21:
							 | 
						||
| 
								 | 
							
								fcron:x:22:
							 | 
						||
| 
								 | 
							
								www:x:24:
							 | 
						||
| 
								 | 
							
								apache:x:25:
							 | 
						||
| 
								 | 
							
								smmsp:x:26:
							 | 
						||
| 
								 | 
							
								polkitd:x:27:
							 | 
						||
| 
								 | 
							
								wheel:x:30:root
							 | 
						||
| 
								 | 
							
								exim:x:31:
							 | 
						||
| 
								 | 
							
								postfix:x:32:
							 | 
						||
| 
								 | 
							
								postdrop:x:33:
							 | 
						||
| 
								 | 
							
								mail:x:34:
							 | 
						||
| 
								 | 
							
								vmailman:x:35:
							 | 
						||
| 
								 | 
							
								news:x:36:
							 | 
						||
| 
								 | 
							
								kdm:x:37:
							 | 
						||
| 
								 | 
							
								mysql:x:40:
							 | 
						||
| 
								 | 
							
								postgres:x:41:
							 | 
						||
| 
								 | 
							
								dovecot:x:42:
							 | 
						||
| 
								 | 
							
								dovenull:x:43:
							 | 
						||
| 
								 | 
							
								ftp:x:45:
							 | 
						||
| 
								 | 
							
								proftpd:x:46:
							 | 
						||
| 
								 | 
							
								vsftpd:x:47:
							 | 
						||
| 
								 | 
							
								rsyncd:x:48:
							 | 
						||
| 
								 | 
							
								sshd:x:50:
							 | 
						||
| 
								 | 
							
								stunnel:x:51:
							 | 
						||
| 
								 | 
							
								svn:x:56:
							 | 
						||
| 
								 | 
							
								svntest:x:57:
							 | 
						||
| 
								 | 
							
								pulse:x:58:
							 | 
						||
| 
								 | 
							
								pulse-access:x:59:
							 | 
						||
| 
								 | 
							
								games:x:60:
							 | 
						||
| 
								 | 
							
								kvm:x:61:
							 | 
						||
| 
								 | 
							
								wireshark:x:62:
							 | 
						||
| 
								 | 
							
								lightdm:x:63:
							 | 
						||
| 
								 | 
							
								sddm:x:64:
							 | 
						||
| 
								 | 
							
								scanner:x:70:
							 | 
						||
| 
								 | 
							
								colord:x:71:
							 | 
						||
| 
								 | 
							
								vboxusers:x:80:
							 | 
						||
| 
								 | 
							
								ldap:x:83:
							 | 
						||
| 
								 | 
							
								avahi:x:84:
							 | 
						||
| 
								 | 
							
								avahi-autoipd:x:85:
							 | 
						||
| 
								 | 
							
								netdev:x:86:
							 | 
						||
| 
								 | 
							
								ntp:x:87:
							 | 
						||
| 
								 | 
							
								unbound:x:88:
							 | 
						||
| 
								 | 
							
								nogroup:x:99:
							 | 
						||
| 
								 | 
							
								users:x:999:
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_passwd() {
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/passwd ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/passwd << "EOF"
							 | 
						||
| 
								 | 
							
								root::0:0:root:/root:/bin/bash
							 | 
						||
| 
								 | 
							
								bin:x:1:1:bin:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								lp:x:9:9:Print Service User:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								atd:x:17:17:add daemon:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								messagebus:x:18:18:D-Bus Message Daemon User:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								named:x:20:20:BIND Owner:/home/named:/bin/false
							 | 
						||
| 
								 | 
							
								gdm:x:21:21:GDM Daemon User:/var/lib/gdm:/bin/false
							 | 
						||
| 
								 | 
							
								fcron:x:22:22:Fcron User:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								www:x:24:24:Nginx Server:/dev/null:bin/false
							 | 
						||
| 
								 | 
							
								apache:x:25:25:Apache Server:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								smmsp:x:26:26:Sendmail Daemon:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								polkitd:x:27:27:Policy Kit Daemon User:/etc/polkit-1:/bin/false
							 | 
						||
| 
								 | 
							
								exim:x:31:31:Exim Daemon:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								postfix:x:32:32:Postfix Daemon User:/var/spool/postfix:/bin/false
							 | 
						||
| 
								 | 
							
								sendmail:x:34:34:Sendmail Daemon:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								vmailman:x:35:35:Vmail Daemon:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								news:x:36:36:News Daemon:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								kdm:x:37:37:KDM Daemon Owner:/var/lib/kdm:/bin/false
							 | 
						||
| 
								 | 
							
								mysql:x:40:40:MySQL Server:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								postgres:x:41:41:PostgreSQL Server:/srv/pgsql/data:/bin/bash
							 | 
						||
| 
								 | 
							
								dovecot:x:42:42:Dovecot unprivileged user:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								dovenull:x:43:43:Dovecot login user:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								ftp:x:45:45:anonymous_user:/home/ftp:/bin/false
							 | 
						||
| 
								 | 
							
								proftpd:x:46:46:proftpd:/srv/ftp:/usr/bin/proftpdshell
							 | 
						||
| 
								 | 
							
								vsftpd:x:47:47:vsftpd User:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								rsyncd:x:48:48:rsyncd Daemon:/home/rsync:/bin/false
							 | 
						||
| 
								 | 
							
								sshd:x:50:50:sshd PrivSep:/var/lib/sshd:/bin/false
							 | 
						||
| 
								 | 
							
								stunnel:x:51:51:stunnel Daemon:/var/lib/stunnel:/bin/false
							 | 
						||
| 
								 | 
							
								svn:x:56:56:SVN Owner:/home/svn:/bin/false
							 | 
						||
| 
								 | 
							
								games:x:60:60:Games High Score Owner:/var/games:/bin/false
							 | 
						||
| 
								 | 
							
								lightdm:x:63:63:Light Display Manager:/var/lib/lightdm:/sbin/nologin
							 | 
						||
| 
								 | 
							
								sddm:x:64:64:Simple Desktop Display Manager:/var/lib/sddm:/bin/false
							 | 
						||
| 
								 | 
							
								colord:x:71:71:Color Daemon Owner:/var/lib/colord:/bin/false
							 | 
						||
| 
								 | 
							
								ldap:x:83:83:OpenLDAP Daemon Owner:/var/lib/openldap:/bin/false
							 | 
						||
| 
								 | 
							
								avahi:x:84:84:Avahi Daemon Owner:/var/run/avahi-daemon:/bin/false
							 | 
						||
| 
								 | 
							
								avahi-autoipd:x:85:85:Avahi autoip Daemon:/:/var/run/avahi-autoipd:/bin/false
							 | 
						||
| 
								 | 
							
								ntp:x:87:87:Network Time Protocol:/var/lib/ntp:/bin/false
							 | 
						||
| 
								 | 
							
								unbound:x:88:88:Unbound DNS resolver:/var/lib/unbound:/bin/false
							 | 
						||
| 
								 | 
							
								anonymous:x:98:99:Unprivileged User:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_fstab() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="fstab"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Begin /etc/fstab
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# file system  mount-point  type     options             dump  fsck
							 | 
						||
| 
								 | 
							
								#                                                              order
							 | 
						||
| 
								 | 
							
								# Exemple de montage nfs
							 | 
						||
| 
								 | 
							
								# 192.168.254.254:/home/thierry /home/thierry nfs rw,vers=3,_netdev,rsize=8192,wsize=8192 0 0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								proc           /proc        proc     nosuid,noexec,nodev 0     0
							 | 
						||
| 
								 | 
							
								sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
							 | 
						||
| 
								 | 
							
								devpts         /dev/pts     devpts   gid=5,mode=620      0     0
							 | 
						||
| 
								 | 
							
								tmpfs          /run         tmpfs    defaults            0     0
							 | 
						||
| 
								 | 
							
								devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_dmrc() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE=".dmrc"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/skel/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/skel ] && mkdir -pv ${FOLDER}/etc/skel
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/skel/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/skel/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								[Desktop]
							 | 
						||
| 
								 | 
							
								Session=default
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_bashrc() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE=".bashrc"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/skel/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/skel ] && mkdir -pv ${FOLDER}/etc/skel
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/skel/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/skel/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Personal aliases and functions.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Personal environment variables and startup programs should go in
							 | 
						||
| 
								 | 
							
								# ~/.bash_profile.  System wide environment variables and startup
							 | 
						||
| 
								 | 
							
								# programs are in /etc/profile.  System wide aliases and functions are
							 | 
						||
| 
								 | 
							
								# in /etc/bashrc.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ -f "/etc/bashrc" ] ; then
							 | 
						||
| 
								 | 
							
								  source /etc/bashrc
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								if [ $EUID -eq 0 ] ; then
							 | 
						||
| 
								 | 
							
								        alias del='cards remove'
							 | 
						||
| 
								 | 
							
								        alias get='cards install'
							 | 
						||
| 
								 | 
							
								        alias up='cards install -u'
							 | 
						||
| 
								 | 
							
								        alias check='cards sync;cards diff'
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								        alias del='sudo cards remove'
							 | 
						||
| 
								 | 
							
								        alias get='sudo cards install'
							 | 
						||
| 
								 | 
							
								        alias up='sudo cards install -u'
							 | 
						||
| 
								 | 
							
								        alias check='sudo cards sync;sudo cards diff'
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								alias search='cards search'
							 | 
						||
| 
								 | 
							
								alias ll='ls -l'
							 | 
						||
| 
								 | 
							
								alias l='ls -alh'
							 | 
						||
| 
								 | 
							
								alias duh='du -h --max-depth=1'
							 | 
						||
| 
								 | 
							
								alias dfh='df -h'
							 | 
						||
| 
								 | 
							
								alias pkgfind='cards list | grep -i'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End ~/.bashrc
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/root/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/root ] && install -dv -m0750 ${FOLDER}/root
							 | 
						||
| 
								 | 
							
								cp -v ${FOLDER}/etc/skel/$FILE \
							 | 
						||
| 
								 | 
							
								${FOLDER}/root
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_bash_profile() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE=".bash_profile"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/skel/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/skel ] && mkdir -pv ${FOLDER}/etc/skel
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/skel/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								cat > ${FOLDER}/etc/skel/$FILE << "EOF"
							 | 
						||
| 
								 | 
							
								# Personal environment variables and startup programs.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Personal aliases and functions should go in ~/.bashrc.  System wide
							 | 
						||
| 
								 | 
							
								# environment variables and startup programs are in /etc/profile.
							 | 
						||
| 
								 | 
							
								# System wide aliases and functions are in /etc/bashrc.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								append () {
							 | 
						||
| 
								 | 
							
								  # First remove the directory
							 | 
						||
| 
								 | 
							
								  local IFS=':'
							 | 
						||
| 
								 | 
							
								  local NEWPATH
							 | 
						||
| 
								 | 
							
								  for DIR in $PATH; do
							 | 
						||
| 
								 | 
							
								     if [ "$DIR" != "$1" ]; then
							 | 
						||
| 
								 | 
							
								       NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
							 | 
						||
| 
								 | 
							
								     fi
							 | 
						||
| 
								 | 
							
								  done
							 | 
						||
| 
								 | 
							
								  # Then append the directory
							 | 
						||
| 
								 | 
							
								  export PATH=$NEWPATH:$1
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ -f "$HOME/.bashrc" ] ; then
							 | 
						||
| 
								 | 
							
								  source $HOME/.bashrc
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# unset append
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# End ~/.bash_profile
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/root ] && install -dv -m0750 ${FOLDER}/root
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/root/$FILE ] && return
							 | 
						||
| 
								 | 
							
								cp -v ${FOLDER}/etc/skel/$FILE \
							 | 
						||
| 
								 | 
							
								${FOLDER}/root
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_pkgmk_conf() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="pkgmk.conf"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								  [ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								  cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								  ${FOLDER}/etc/$FILE
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_cards_conf() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="cards.conf"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/etc/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc ] && mkdir -pv ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								if [ -f /etc/${INSTALL_COMMAND}.conf.d/$FILE ]; then
							 | 
						||
| 
								 | 
							
								   cp /etc/${INSTALL_COMMAND}.conf.d/$FILE \
							 | 
						||
| 
								 | 
							
								   ${FOLDER}/etc/$FILE
							 | 
						||
| 
								 | 
							
								   return
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								echo "## For kde5
							 | 
						||
| 
								 | 
							
								# Comment following 2 lines
							 | 
						||
| 
								 | 
							
								# if you don't want to install kde5
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/kde5-extra|${URL}
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/kde5|${URL}
							 | 
						||
| 
								 | 
							
								##
							 | 
						||
| 
								 | 
							
								## For kde (4)
							 | 
						||
| 
								 | 
							
								# Comment following 2 lines
							 | 
						||
| 
								 | 
							
								# if you don't want to install kde (version4)
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/kde-extra|${URL}
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/kde|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For cinnamon
							 | 
						||
| 
								 | 
							
								# Cinnamon is not yet ready to ude
							 | 
						||
| 
								 | 
							
								# Decomment following 2 lines
							 | 
						||
| 
								 | 
							
								# if you want to try cinnamon anyway
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# dir ${DEPOT}/cinnamon-extra|${URL}
							 | 
						||
| 
								 | 
							
								# dir ${DEPOT}/cinnamon|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For Gnome
							 | 
						||
| 
								 | 
							
								# Comment following 2 lines
							 | 
						||
| 
								 | 
							
								# if you don't want to install gnome
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/gnome-extra|${URL}
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/gnome|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For mate
							 | 
						||
| 
								 | 
							
								# Comment following 2 lines
							 | 
						||
| 
								 | 
							
								# if you don't want to install mate
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/mate-extra|${URL}
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/mate|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For xfce4
							 | 
						||
| 
								 | 
							
								# Comment following 2 lines
							 | 
						||
| 
								 | 
							
								# if you don't want to install xfce4
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/xfce4-extra|${URL}
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/xfce4|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For lxqt
							 | 
						||
| 
								 | 
							
								# Comment following 2 lines
							 | 
						||
| 
								 | 
							
								# if you don't want to install lxqt
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/lxqt-extra|${URL}
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/lxqt|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For lxde
							 | 
						||
| 
								 | 
							
								# Comment following 2 lines
							 | 
						||
| 
								 | 
							
								# if you don't want to install lxde
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/lxde-extra|${URL}
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/lxde|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## Normally everything under this line
							 | 
						||
| 
								 | 
							
								# are needed stuffs
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For all the graphical applications
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/gui-extra|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For a minimal graphical interface
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/gui|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For all the console applications
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/cli-extra|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## For a minimal console interface
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/cli|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## Strict minimum Base system to be able to boot on it
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/base-extra|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Chroot system without reboot possibilities for a chroot
							 | 
						||
| 
								 | 
							
								dir ${DEPOT}/base|${URL}
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## Normaly you want to keep base and
							 | 
						||
| 
								 | 
							
								base ${DEPOT}/base
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## and base-extra
							 | 
						||
| 
								 | 
							
								base ${DEPOT}/base-extra
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								## If you want to keep more collections remove comments below
							 | 
						||
| 
								 | 
							
								# Adjust to your needs
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# base ${DEPOT}/cli
							 | 
						||
| 
								 | 
							
								# base ${DEPOT}/cli-extra
							 | 
						||
| 
								 | 
							
								# base ${DEPOT}/gui
							 | 
						||
| 
								 | 
							
								# base ${DEPOT}/gui-extra
							 | 
						||
| 
								 | 
							
								# base ${DEPOT}/..." > ${FOLDER}/etc/cards.conf
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_nutyx_version() {
							 | 
						||
| 
								 | 
							
								local FILE
							 | 
						||
| 
								 | 
							
								FILE="nutyx-version"
							 | 
						||
| 
								 | 
							
								[ -f ${FOLDER}/var/lib/pkg/$FILE ] && return
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/var/lib/pkg ] && mkdir -pv ${FOLDER}/var/lib/pkg
							 | 
						||
| 
								 | 
							
								echo "name ${CODE_NAME}
							 | 
						||
| 
								 | 
							
								version $VERSION" > ${FOLDER}/var/lib/pkg/$FILE
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								install_resolv_conf() {
							 | 
						||
| 
								 | 
							
								[ -f /etc/resolv.conf ] && cp /etc/resolv.conf ${FOLDER}/etc
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								successfull_installation () {
							 | 
						||
| 
								 | 
							
								echo "
							 | 
						||
| 
								 | 
							
								****************************************************
							 | 
						||
| 
								 | 
							
								*      Installation of NuTyX $VERSION finished.         *
							 | 
						||
| 
								 | 
							
								*                                                  *
							 | 
						||
| 
								 | 
							
								* Thanks for installing NuTyX                      *
							 | 
						||
| 
								 | 
							
								*                                                  *
							 | 
						||
| 
								 | 
							
								* Check http://www.nutyx.org/en/documentation.html *
							 | 
						||
| 
								 | 
							
								* or http://www.nutyx.org/fr/documentation.html    *
							 | 
						||
| 
								 | 
							
								*                                                  *
							 | 
						||
| 
								 | 
							
								* Make sure to review /etc/cards.conf              *
							 | 
						||
| 
								 | 
							
								* to meet your requirements in packages selection  *
							 | 
						||
| 
								 | 
							
								*                                                  *
							 | 
						||
| 
								 | 
							
								****************************************************
							 | 
						||
| 
								 | 
							
								"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								check_root() {
							 | 
						||
| 
								 | 
							
								[ "$UID" != "0" ] && error " You are not root, cannot continue"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								check_bash() {
							 | 
						||
| 
								 | 
							
									BASH_VERSION=`bash --version|head -n1 | cut -d " " -f4|cut -d "(" -f1|sed "s/\.//g"`
							 | 
						||
| 
								 | 
							
									if [ -z ${BASH_VERSION} ]; then
							 | 
						||
| 
								 | 
							
										error " Wrong interpreter, please use 'bash' as interpreter"
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
									# Checking bash version
							 | 
						||
| 
								 | 
							
									if [ ${BASH_VERSION} -lt 4333 ]; then
							 | 
						||
| 
								 | 
							
										boot_mesg " You not use 'bash' version 4.3.33 or newer..."
							 | 
						||
| 
								 | 
							
										echo_warning
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								check_tools() {
							 | 
						||
| 
								 | 
							
									if ! (`which wget > /dev/null`); then
							 | 
						||
| 
								 | 
							
										error " Command 'wget' not found, please install wget"
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
									if ! (`which tar > /dev/null`); then
							 | 
						||
| 
								 | 
							
										error " Command 'tar' not found, please install tar"
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
									if ! (`which gawk > /dev/null`); then
							 | 
						||
| 
								 | 
							
										error " Command 'gawk' not found, please install gawk"
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								check_variables() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ -z $URL ] && URL="http://downloads.nutyx.org"
							 | 
						||
| 
								 | 
							
								[ -z $VERSION ] && VERSION="8.0"
							 | 
						||
| 
								 | 
							
								[ -z $DEPOT ] && DEPOT="/var/lib/pkg/depotrepo"
							 | 
						||
| 
								 | 
							
								[ -z $FOLDER ] && FOLDER="/mnt/hd"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HOMEPAGE="${URL}"                       ## http://downloads.nutyx.org
							 | 
						||
| 
								 | 
							
								INSTALL_BASE="$VERSION/$ARCH"           ## 8.0/x86_64
							 | 
						||
| 
								 | 
							
								DEPOT_ROOT="$HOMEPAGE/${INSTALL_BASE}"  ## http://downloads.nutyx.org/8.0/x86_64
							 | 
						||
| 
								 | 
							
								DEPOT_BASE="$DEPOT_ROOT/$BASE"          ## http://downloads.nutyx.org/8.0/x86_64/base
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								LOCAL_DEPOT_PACKAGES="$DEPOT/$BASE"
							 | 
						||
| 
								 | 
							
								DEPOT_CD="/media/cdrom"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SETUP_FILE=/tmp/setup
							 | 
						||
| 
								 | 
							
								# Size of the FullInstall in Mbytes
							 | 
						||
| 
								 | 
							
								let BASE_SIZE=450
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								config() {
							 | 
						||
| 
								 | 
							
								ARCH=`uname -m`
							 | 
						||
| 
								 | 
							
								# Number of seconds between STOPSIG and FALLBACK when stopping processes
							 | 
						||
| 
								 | 
							
								KILLDELAY="3"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Screen Dimensions
							 | 
						||
| 
								 | 
							
								# Find current screen size
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ -z "${COLUMNS}" ]; then
							 | 
						||
| 
								 | 
							
								        COLUMNS=$(stty size)
							 | 
						||
| 
								 | 
							
								        COLUMNS=${COLUMNS##* }
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# When using remote connections, such as a serial port, stty size returns 0
							 | 
						||
| 
								 | 
							
								if [ "${COLUMNS}" = "0" ]; then
							 | 
						||
| 
								 | 
							
								        COLUMNS=80
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Measurements for positioning result messages
							 | 
						||
| 
								 | 
							
								COL=$((${COLUMNS} - 8))
							 | 
						||
| 
								 | 
							
								WCOL=$((${COL} - 2))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Provide an echo that supports -e and -n
							 | 
						||
| 
								 | 
							
								# If formatting is needed, $ECHO should be used
							 | 
						||
| 
								 | 
							
								case "`echo -e -n test`" in
							 | 
						||
| 
								 | 
							
								        -[en]*)
							 | 
						||
| 
								 | 
							
								                ECHO=/bin/echo
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								        *)
							 | 
						||
| 
								 | 
							
								                ECHO=echo
							 | 
						||
| 
								 | 
							
								                ;;
							 | 
						||
| 
								 | 
							
								esac
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Set Cursor Position Commands, used via $ECHO
							 | 
						||
| 
								 | 
							
								SET_COL="\\033[${COL}G"      # at the $COL char
							 | 
						||
| 
								 | 
							
								SET_WCOL="\\033[${WCOL}G"    # at the $WCOL char
							 | 
						||
| 
								 | 
							
								CURS_UP="\\033[1A\\033[0G"   # Up one line, at the 0'th char
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Set color commands, used via $ECHO
							 | 
						||
| 
								 | 
							
								# Please consult `man console_codes for more information
							 | 
						||
| 
								 | 
							
								# under the "ECMA-48 Set Graphics Rendition" section
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Warning: when switching from a 8bit to a 9bit font,
							 | 
						||
| 
								 | 
							
								# the linux console will reinterpret the bold (1;) to
							 | 
						||
| 
								 | 
							
								# the top 256 glyphs of the 9bit font.  This does
							 | 
						||
| 
								 | 
							
								# not affect framebuffer consoles
							 | 
						||
| 
								 | 
							
								NORMAL="\\033[0;39m"         # Standard console grey
							 | 
						||
| 
								 | 
							
								SUCCESS="\\033[1;32m"        # Success is green
							 | 
						||
| 
								 | 
							
								WARNING="\\033[1;33m"        # Warnings are yellow
							 | 
						||
| 
								 | 
							
								FAILURE="\\033[1;31m"        # Failures are red
							 | 
						||
| 
								 | 
							
								INFO="\\033[1;36m"           # Information is light cyan
							 | 
						||
| 
								 | 
							
								BRACKET="\\033[1;34m"        # Brackets are blue
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								STRING_LENGTH="0"   # the length of the current message
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								check_lfs() {
							 | 
						||
| 
								 | 
							
								# LFS is set ?
							 | 
						||
| 
								 | 
							
								if [ ! -z "${LFS}" ]; then
							 | 
						||
| 
								 | 
							
								        DEVICE=${LFS}
							 | 
						||
| 
								 | 
							
									FOLDER=${LFS}
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        DEVICE=${FOLDER}
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								echo "
							 | 
						||
| 
								 | 
							
								******************************
							 | 
						||
| 
								 | 
							
								Installation path: $DEVICE
							 | 
						||
| 
								 | 
							
								******************************"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								check_mountpoint() {
							 | 
						||
| 
								 | 
							
								[ -z $FOLDER ] && error "Variable FOLDER not define"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								check_arch() {
							 | 
						||
| 
								 | 
							
								if [ "$ARCH" != "x86_64" ] && [ "$ARCH" != "i686" ]; then
							 | 
						||
| 
								 | 
							
									boot_mesg "
							 | 
						||
| 
								 | 
							
								 >>> This arch ($ARCH) is not supported"
							 | 
						||
| 
								 | 
							
									echo_failure
							 | 
						||
| 
								 | 
							
									exit 1
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								create_database() {
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/var/lib/pkg/DB ] && mkdir -p ${FOLDER}/var/lib/pkg/DB
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								create_locale_link() {
							 | 
						||
| 
								 | 
							
								[ ! -d ${FOLDER}/etc/locale ] && mkdir -p ${FOLDER}/etc/locale
							 | 
						||
| 
								 | 
							
								if [ -d ${FOLDER}/usr/lib/locale ]; then
							 | 
						||
| 
								 | 
							
								   rm -r ${FOLDER}/usr/lib/locale
							 | 
						||
| 
								 | 
							
								   ln -sv /etc/locale/ ${FOLDER}/usr/lib/locale
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								make_directories() {
							 | 
						||
| 
								 | 
							
								mkdir ${FOLDER}/{dev,sys,proc,run,tmp,home,srv,mnt}
							 | 
						||
| 
								 | 
							
								mkdir -p ${FOLDER}/var/tmp
							 | 
						||
| 
								 | 
							
								mkdir -p ${FOLDER}/usr/{,local/}lib
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								chmod 1777 ${FOLDER}/{,var/}tmp
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								mkdir -v ${FOLDER}/var/{mail,spool}
							 | 
						||
| 
								 | 
							
								mkdir -pv ${FOLDER}/var/run/lock
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								mknod -m 600 ${FOLDER}/dev/console c 5 1
							 | 
						||
| 
								 | 
							
								mknod -m 666 ${FOLDER}/dev/null c 1 3
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								download_pkgadd() {
							 | 
						||
| 
								 | 
							
									if [ ! -f $TMP/usr/bin/pkgadd ]; then
							 | 
						||
| 
								 | 
							
								        	cd $TMP
							 | 
						||
| 
								 | 
							
								        	basepackagefile=`getPackageName cards`
							 | 
						||
| 
								 | 
							
								        	if [ "$basepackagefile" == "" ]; then
							 | 
						||
| 
								 | 
							
								                	error "variable 'basepackagefile' is not set"
							 | 
						||
| 
								 | 
							
								        	fi
							 | 
						||
| 
								 | 
							
								        	packagefile=`echo ${basepackagefile}|sed "s|^cards|cards.devel|"`
							 | 
						||
| 
								 | 
							
								        	if  [ ! -f ${packagefile} ]; then
							 | 
						||
| 
								 | 
							
								                	wget ${DEPOT_BASE}/cards/$packagefile || print_error_msg
							 | 
						||
| 
								 | 
							
								                	echo_ok
							 | 
						||
| 
								 | 
							
								        	fi
							 | 
						||
| 
								 | 
							
								        	echo "Extraction of cards.devel ..."
							 | 
						||
| 
								 | 
							
								        	tar -xf ${packagefile} || print_error_msg
							 | 
						||
| 
								 | 
							
								        	echo_ok
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								check_mountfolder() {
							 | 
						||
| 
								 | 
							
									[ ! -d $FOLDER ] && mkdir -p $FOLDER
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								generate_setupfile() {
							 | 
						||
| 
								 | 
							
								echo "#!/bin/bash
							 | 
						||
| 
								 | 
							
								source /etc/profile
							 | 
						||
| 
								 | 
							
								cards sync
							 | 
						||
| 
								 | 
							
								cards install e2fsprogs \
							 | 
						||
| 
								 | 
							
								reiserfsprogs \
							 | 
						||
| 
								 | 
							
								xfsprogs jfsutils \
							 | 
						||
| 
								 | 
							
								btrfs-progs sudo \
							 | 
						||
| 
								 | 
							
								sysklogd sysvinit \
							 | 
						||
| 
								 | 
							
								dhcpcd grub \
							 | 
						||
| 
								 | 
							
								tzdata iproute2 iana-etc \
							 | 
						||
| 
								 | 
							
								e3 eudev kmod less \
							 | 
						||
| 
								 | 
							
								groff man-db cards.man \
							 | 
						||
| 
								 | 
							
								nutyx.man \
							 | 
						||
| 
								 | 
							
								lvm2 mdadm dialog cpio squashfs \
							 | 
						||
| 
								 | 
							
								linux-firmware \
							 | 
						||
| 
								 | 
							
								kernel-lts \
							 | 
						||
| 
								 | 
							
								ca-certificates
							 | 
						||
| 
								 | 
							
								exit" > $FOLDER/$SETUP_FILE
							 | 
						||
| 
								 | 
							
								chmod 177 $FOLDER/$SETUP_FILE
							 | 
						||
| 
								 | 
							
								setup_chroot
							 | 
						||
| 
								 | 
							
								chroot ${FOLDER} /bin/bash -c "$SETUP_FILE"
							 | 
						||
| 
								 | 
							
								unmountall
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								install_configuration_files() {
							 | 
						||
| 
								 | 
							
									generate_cards_conf
							 | 
						||
| 
								 | 
							
									generate_pkgmk_conf
							 | 
						||
| 
								 | 
							
									generate_fstab
							 | 
						||
| 
								 | 
							
									generate_passwd
							 | 
						||
| 
								 | 
							
									generate_group
							 | 
						||
| 
								 | 
							
									generate_bash_profile
							 | 
						||
| 
								 | 
							
									generate_bashrc
							 | 
						||
| 
								 | 
							
									generate_dmrc
							 | 
						||
| 
								 | 
							
									generate_hosts
							 | 
						||
| 
								 | 
							
									generate_inputrc
							 | 
						||
| 
								 | 
							
									generate_shells
							 | 
						||
| 
								 | 
							
									generate_dircolors_sh
							 | 
						||
| 
								 | 
							
									generate_extrapaths_sh
							 | 
						||
| 
								 | 
							
									generate_readline_sh
							 | 
						||
| 
								 | 
							
									generate_umask_sh
							 | 
						||
| 
								 | 
							
									generate_profile
							 | 
						||
| 
								 | 
							
									generate_hosts
							 | 
						||
| 
								 | 
							
									generate_inputrc
							 | 
						||
| 
								 | 
							
									generate_modules
							 | 
						||
| 
								 | 
							
									generate_createfiles
							 | 
						||
| 
								 | 
							
									generate_mouse
							 | 
						||
| 
								 | 
							
									generate_udev_retry
							 | 
						||
| 
								 | 
							
									generate_rc_site
							 | 
						||
| 
								 | 
							
									generate_etc_bashrc
							 | 
						||
| 
								 | 
							
									generate_blfs_bootscripts
							 | 
						||
| 
								 | 
							
									generate_nutyx_version
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								print_help() {
							 | 
						||
| 
								 | 
							
									echo "
							 | 
						||
| 
								 | 
							
								usage: `basename ${INSTALL_COMMAND}` [options] options
							 | 
						||
| 
								 | 
							
								  -p,   --path  <installation-path> will install NuTyX in <installation-path>
							 | 
						||
| 
								 | 
							
								  -ec,  --enter-chroot              will enter in the chroot if exist
							 | 
						||
| 
								 | 
							
								  -ic,  --install-config            will install all the configuration files only
							 | 
						||
| 
								 | 
							
								  -h,   --help                      print help and exit
							 | 
						||
| 
								 | 
							
								  -v,   --version                   print the version and exit
							 | 
						||
| 
								 | 
							
								"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								parse_options() {
							 | 
						||
| 
								 | 
							
									while [ "$1" ]; do
							 | 
						||
| 
								 | 
							
										case $1 in
							 | 
						||
| 
								 | 
							
											-h|--help)
							 | 
						||
| 
								 | 
							
												print_help
							 | 
						||
| 
								 | 
							
												exit 0;;
							 | 
						||
| 
								 | 
							
											-ec|--enter-chroot)
							 | 
						||
| 
								 | 
							
												check_lfs "$@"
							 | 
						||
| 
								 | 
							
												check_root
							 | 
						||
| 
								 | 
							
												setup_chroot
							 | 
						||
| 
								 | 
							
												enter_chroot
							 | 
						||
| 
								 | 
							
												unmountall
							 | 
						||
| 
								 | 
							
												exit 0;;
							 | 
						||
| 
								 | 
							
											-ic|--install-config)
							 | 
						||
| 
								 | 
							
												check_variables
							 | 
						||
| 
								 | 
							
												check_lfs "$@"
							 | 
						||
| 
								 | 
							
												check_root
							 | 
						||
| 
								 | 
							
												check_mountfolder
							 | 
						||
| 
								 | 
							
												check_mountpoint
							 | 
						||
| 
								 | 
							
												make_directories
							 | 
						||
| 
								 | 
							
												create_locale_link
							 | 
						||
| 
								 | 
							
												install_configuration_files
							 | 
						||
| 
								 | 
							
												exit 0;;
							 | 
						||
| 
								 | 
							
											-p|--path)
							 | 
						||
| 
								 | 
							
												if [ ! "$2" ]; then
							 | 
						||
| 
								 | 
							
													echo "`basename $INSTALL_COMMAND`: option $1 requires an argument"
							 | 
						||
| 
								 | 
							
													exit 1
							 | 
						||
| 
								 | 
							
												fi
							 | 
						||
| 
								 | 
							
												FOLDER="$2"
							 | 
						||
| 
								 | 
							
												shift;;
							 | 
						||
| 
								 | 
							
											-v|--version)
							 | 
						||
| 
								 | 
							
												echo "`basename $INSTALL_COMMAND` $VERSION-$RELEASE"
							 | 
						||
| 
								 | 
							
												exit 0;;
							 | 
						||
| 
								 | 
							
											/*)
							 | 
						||
| 
								 | 
							
												boot_mesg "
							 | 
						||
| 
								 | 
							
								 >>> This methode is depreciate <<<: use '-p $1' instead or adjust the 'LFS' variable"
							 | 
						||
| 
								 | 
							
												echo_warning
							 | 
						||
| 
								 | 
							
												echo "
							 | 
						||
| 
								 | 
							
								   press any key to continue ...
							 | 
						||
| 
								 | 
							
								"
							 | 
						||
| 
								 | 
							
												read a
							 | 
						||
| 
								 | 
							
												FOLDER="$1";;
							 | 
						||
| 
								 | 
							
											*)
							 | 
						||
| 
								 | 
							
												echo "`basename $0`: invalid option $1"
							 | 
						||
| 
								 | 
							
												exit 1 ;;
							 | 
						||
| 
								 | 
							
										esac
							 | 
						||
| 
								 | 
							
										shift
							 | 
						||
| 
								 | 
							
									done
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								main() {
							 | 
						||
| 
								 | 
							
									config
							 | 
						||
| 
								 | 
							
									[ -f /etc/`basename $INSTALL_COMMAND`.conf ] && source /etc/`basename $INSTALL_COMMAND`.conf
							 | 
						||
| 
								 | 
							
									check_variables  "$@"
							 | 
						||
| 
								 | 
							
									parse_options "$@"
							 | 
						||
| 
								 | 
							
									check_arch
							 | 
						||
| 
								 | 
							
									check_lfs "$@"
							 | 
						||
| 
								 | 
							
									if [ $# -lt 1 ] && [ -z "$LFS" ] ; then
							 | 
						||
| 
								 | 
							
										echo "
							 | 
						||
| 
								 | 
							
								*******************************************
							 | 
						||
| 
								 | 
							
								* You didn't specify enough arguments     *
							 | 
						||
| 
								 | 
							
								* Argument 1: Folder destionation         *
							 | 
						||
| 
								 | 
							
								*                                         *
							 | 
						||
| 
								 | 
							
								* Please re-enter the command with the    *
							 | 
						||
| 
								 | 
							
								* corrects arguments                      *
							 | 
						||
| 
								 | 
							
								*******************************************
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								example: ${INSTALL_COMMAND} -p /chroot
							 | 
						||
| 
								 | 
							
								"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										return
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
									check_root
							 | 
						||
| 
								 | 
							
									check_bash
							 | 
						||
| 
								 | 
							
									check_tools
							 | 
						||
| 
								 | 
							
									TMP=`mktemp -d`
							 | 
						||
| 
								 | 
							
									check_mountfolder
							 | 
						||
| 
								 | 
							
									check_mountpoint
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									download_pkgadd
							 | 
						||
| 
								 | 
							
									create_database
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									install_base
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									create_locale_link
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									make_directories
							 | 
						||
| 
								 | 
							
									install_configuration_files
							 | 
						||
| 
								 | 
							
									install_resolv_conf
							 | 
						||
| 
								 | 
							
									generate_setupfile
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
									successfull_installation
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								readonly CODE_NAME="houaphan"
							 | 
						||
| 
								 | 
							
								readonly BASE="base"
							 | 
						||
| 
								 | 
							
								readonly RELEASE=2
							 | 
						||
| 
								 | 
							
								INSTALL_COMMAND="`basename $0`"
							 | 
						||
| 
								 | 
							
								main "$@"
							 |