#!/bin/bash
#--------------------------------------------
#scvmakekey
#Copyright J's Communication co.,ltd.
#--------------------------------------------
PROGNAME="scvmakekey"
PROGVER="1.0.8"
PROGDATE="2017/10/29"

usage() {
  echo "$PROGNAME -setup scvrun|scvcon #setup using current keypairs in /var.../scv/scvbin for the user"
  echo "$PROGNAME -make scvrun|scvcon  #make new keypairs and setup for the user"
  exit 1
}

sure() {
  echo "Are you sure to continue? [y/N]"
  read ANSWER
  case $ANSWER in
    "Y" | "y" | "yes" | "Yes" | "YES" )  : ;;
    * ) echo "command canceled!"; exit 0 ;;
  esac
}

save() {
  NOW=`date "+%Y%m%d_%H%M%S"`
  echo "Saving current key files for ${USER}"
  #echo "KEYSEC=${KEYSEC}_${NOW} KEYPUB=${KEYPUB}_${NOW}"
  if [ -f /var/www/html/scv/scvbin/${KEYSEC} ]; then
    cp /var/www/html/scv/scvbin/${KEYSEC} /var/www/html/scv/scvbin/${KEYSEC}_${NOW}
  fi
  if [ -f /var/www/html/scv/scvbin/${KEYPUB} ]; then
    cp /var/www/html/scv/scvbin/${KEYPUB} /var/www/html/scv/scvbin/${KEYPUB}_${NOW}
  fi
}

keygen() {
  echo "Generating new key pairs for ${USER}"
  #sudo ssh-keygen -t rsa -b 4096 -C "${ADDR}" -N '' -f ${USER}
  sudo ssh-keygen -t rsa -C "${ADDR}" -N '' -f ${USER}
  sudo mv ${USER}     /var/www/html/scv/scvbin/${KEYSEC}
  sudo mv ${USER}.pub /var/www/html/scv/scvbin/${KEYPUB}
  sudo chown www-data:docker /var/www/html/scv/scvbin/*
  sudo chmod 777 /var/www/html/scv/scvbin/*
}

sshsetup() {
  echo "Setting up ssh config for ${USER}"
  echo "Please ignore the message => cannot create directory /home.../.ssh File exists"
  sudo mkdir /home/${USER}/.ssh
  sudo chown ${USER}:${USER} /home/${USER}/.ssh
  #sudo chmod 777 /home/${USER}/.ssh
  sudo cp "/var/www/html/scv/scvbin/${KEYPUB}" /home/${USER}/.ssh/authorized_keys
  sudo echo "User ${USER}" > ${USER}.conf
  sudo echo "IdentityFile /var/www/html/scv/scvbin/${KEYSEC}" >> ${USER}.conf
  sudo echo "StrictHostKeyChecking no" >> ${USER}.conf
  sudo cp ${USER}.conf /home/${USER}/.ssh/config
  sudo chown ${USER}:${USER} -R /home/${USER}
  sudo chmod 750 -R /home/${USER}
  #chmod 600 /home/${USER}/.ssh/authorized_keys
  #chmod 700 /home/${USER}/.ssh
  rm ${USER}.conf
}


#------------------------------------------------
echo "=================================================="
echo "$PROGNAME $PROGVER $PROGDATE"

PCOUNT=$#
if [ $PCOUNT -ne 2 ]; then
  usage
fi

if [ "$1" = "-make" -o "$1" = "-setup" ];then
  if [ "$2" = "scvrun" ];then
    USER="scvrun"
    KEYSEC="scvrunsec"
    KEYPUB="scvrunpub"
    ADDR="scvrun@scvdev"
  elif [ "$2" = "scvcon" ];then
    USER="scvcon"
    KEYSEC="scvconsec"
    KEYPUB="scvconpub"
    ADDR="scvcon@scvdev"
  else
    usage
  fi
else
  usage
fi

if [ "$1" = "-make" ];then
  sure
  save
  keygen
  sshsetup
elif [ "$1" = "-setup" ];then
  sshsetup
fi

exit
