#!/bin/sh
# 
# VMTux.net
#
# /etc/vmt/vmt-start
#
PATH=/bin:/sbin

if [ "$(id -u)" -ne 0 ]; then echo "This command can only be used by root" >&2 ; exit 1; fi

umask 022

. /etc/vmt/vmt-colors
. /etc/vmt/vmt-conf


BOOTTIME=$(dmesg  | grep 'Run /init' | awk -F "[][]" '{ gsub(/ /,"") ; print $2 }')
verid=$(grep '^VERSION_ID=' /etc/os-release)
VERSION=${verid#*=}
KERNEL="$(uname -r)"
MYNAME=$(grep '^PRETTY_NAME=' /etc/os-release | awk -F\" '{ print $2 }')
CPUMODEL=$(grep "model name" /proc/cpuinfo | tail -1 | awk -F: '{ print $2 }')
TOTALCORES=$(grep -c processor /proc/cpuinfo)
FREQUENCY=$(grep MHz /proc/cpuinfo | tail -1 | awk -F: '{ print $2}')
MEMORY=$(grep MemTotal /proc/meminfo | awk '{ printf("%.2f GB", $2/(1000000)) }')

echo "\r${BBlue}Booted ${BYellow}${MYNAME}${BGreen} Linux Kernel ${BYellow}$KERNEL${BBlue} in ${BYellow}${BOOTTIME}${BBlue} seconds.${Reset}"
echo "${BBlue}CPU:${BYellow}${CPUMODEL}${BBlue} Cores: ${BYellow}${TOTALCORES}${BBlue} Memory:${BYellow}${MEMORY}${Reset}"

# make some user or use defaultuser

adduser -s /bin/sh -G ${VMT_GROUP} -D ${VMT_USER}
echo ${VMT_USER}:${VMT_PASSWORD} | chpasswd -m 2>/dev/null
echo "${VMT_USER}\tALL=NOPASSWD: ALL" >> /etc/sudoers 

mkdir -p /home/${VMT_USER}

find /etc/skel -type f -exec cp {} /home/${VMT_USER} \;
chown -R ${VMT_USER}:${VMT_GROUP} /home/${VMT_USER}
chmod -R g+w,o-rwx /home/${VMT_USER}

sync

# anyone hit enter on boot?
read -t 2

if [ $? -eq 0 ]; then
  vmt-config
  clear
  exit 0
fi

# wait 5 seconds (max) until a disk is mounted and hyperlinked to vmt data
cnt=0
until [ -h ${VMT_DEVICE} ]; do
  [ $((cnt++)) -gt 50 ] && break || usleep 100000
done

if [ $cnt -gt 10 ]; then
  echo "${BBlue}Waited ${BYellow}${cnt}${BBlue} ticks for storage device${Reset}"
fi

if [ -h ${VMT_DEVICE} ]; then
  if [ ! -d ${VMT_DEVICE}/srv ]; then mkdir -p ${VMT_DEVICE}/srv ; fi
  rm -rf /srv
  ln -sf ${VMT_DEVICE}/srv /srv
  chown root:users /srv
  chmod 775 /srv
else
  storage=$(cat ${VMT_FSTAB} | grep "${VMT_ADDEDBY}" | grep -v swap | awk '{ print $2 }')
  if [ -n "${storage}" ]; then
    echo "${BBlue}Found persistant storage ${BTellow}${storage}${Reset}"
  else
    storage=/tmp
    echo -n "${BBlue}No storage device found <enter> for options (5 seconds):${Reset} "
    read -t 5
    if [ $? -eq 0 ]; then
      vmt-options
    else
      echo
    fi
  fi
  mkdir -p ${storage}/${VMT_NAME}
  ln -s ${storage} ${VMT_DEVICE}
fi

mkdir -p ${VMT_BACKUP_DIR} ${VMT_LOOP} ${VMT_PKG_DIR}
touch ${VMT_BOOTLIST}
chown ${VMT_USER}:${VMT_GROUP} ${VMT_BACKUP_DIR}
chown root:${VMT_GROUP} ${VMT} ${VMT_LOOP} ${VMT_PKG_DIR} ${VMT_BOOTLIST}
chmod g+w ${VMT} ${VMT_LOOP} ${VMT_PKG_DIR} ${VMT_BOOTLIST}

echo -n "${BBlue}Loading packages... ${Yellow}"

su - ${VMT_USER} -c "/bin/vmt-install --boot" > $VMT_LOG_INSTALL 2>&1 & rotdash $!

echo "${BGreen}done.${Reset}"

/bin/vmt-backup -r

chown -R root:${VMT_GROUP} /opt
chmod -R 775 /opt

if [ -x /opt/startup.sh ]; then
  echo -n "${BBlue}Runnning /opt/startup.sh${Reset} "
  /opt/startup.sh >/tmp/vmt-startup.log 2>&1
  echo "${BGreen}done.${Reset}"
fi

exit 0
