RSMD_SERVICE_RUN=/etc/sv/rsmd/run
RSM_CONFIG=/etc/rsm/rsmd.conf 
FSTAB=/etc/fstab 
RAMDISK=/mnt/ramdisk

check_pre_systemd()
{
   oldver=$1
   major=${oldver%%.*}
   patch=${oldver##*.}
   minor=${oldver##$major.}
   minor=${minor%%.$patch}
   echo "Old version: $oldver"
   echo "Major: $major"
   echo "Minor: $minor"
   echo "Patch: $patch"
   
   if test $major -gt 4; then
     return 1
   fi 
   if test $major -lt 4; then
     return 0
   fi
   if test $minor -lt 4; then
      return 0
   fi
   return 1
}

pre_install()
{
   systemctl stop watchdog
}

post_install_save_sd()
{
    CONTENT=$(cat $RSMD_SERVICE_RUN | grep "cp -f /var/rsm/rsmd.db /run/rsmd.db")

    RAMDISK_COPY="
    if [ -f /var/rsm/rsmd.db ]; then\\n
    \\tif [ ! -f /run/rsmd.db ]; then\\n
    \\t\\tcp -f /var/rsm/rsmd.db /run/rsmd.db\\n
    \tfi\\n
    fi\\n
    "

    # Check to see if it copies the database to the tmpfs
    if [ "$CONTENT" == "" ]; 
    then	
        LN=$(grep -nr 'echo ""' $RSMD_SERVICE_RUN | cut -d : -f 1)	
        
        sed -i -e "$LN a\  $(echo $RAMDISK_COPY)" $RSMD_SERVICE_RUN
    fi

    # Update rsmd to use rsmd.db from tmpfs
    CONTENT=$(cat $RSM_CONFIG | grep "lacuna.db=/run/rsmd.db")
    if [ "$CONTENT" == "" ];
    then
        echo "Update RSMD to use ramdisk database"
        mkdir /home/default/save-sd
        cp /var/rsm/rsmd.db* /home/default/save-sd
        sed -i -e "s_lacuna.db=/var/rsm/rsmd.db_#lacuna.db=/var/rsm/rsmd.db\nlacuna.db=/run/rsmd.db_" $RSM_CONFIG
    fi
}


post_install()
{
lua /usr/share/rsmd/dbupgrade.lua
systemctl enable rsmd
systemctl start rsmd
systemctl start watchdog
 return 0
}

pre_upgrade()
{
  oldver=$2
  systemctl stop watchdog
  if check_pre_systemd $oldver; then
     sv down rsmd
  else
     systemctl stop rsmd
  fi      
  return 0
}

post_upgrade()
{
  oldver=$2 
  if [ -f /run/rsmd.db ]; then
    cp /run/rsmd.db /var/rsm/rsmd.db
  fi

  lua /usr/share/rsmd/dbupgrade.lua
  post_install_save_sd

  cp /var/rsm/rsmd.db /run/rsmd.db

  if check_pre_systemd $oldver; then
     remove-service rsmd
     systemctl enable rsmd
  fi
  
  systemctl start rsmd
  systemctl start watchdog
  return 0
}

pre_remove()
{
systemctl stop watchdog
systemctl stop rsmd
systemctl disable rsmd
}

post_remove()
{
 systemctl start watchdog 
}

