#!/bin/bash
# Author: Steven Shiau <steven _at_ nchc org tw>
# License: GPL

# Prepare drbl/clonezilla runtime programs and dir
echo "Preparing Clonezilla program..."
tar -xzf /live_media/pkg/opt_drbl.tgz -C /
if [ -e /live_media/pkg/custom-ocs ]; then
  # We do not put custom-ocs in /opt/drbl/sbin/, we put it in /opt/local/sbin/ so that when we use clonezilla live to create a custom clonezilla live, it won't be put in the custom clonezilla live. It should be put by ocs-iso, not in the tarball.
  mkdir -p /opt/local/sbin/
  cp -f /live_media/pkg/custom-ocs /opt/local/sbin/
  chmod 755 /opt/local/sbin/custom-ocs
fi
cp -a /live_media/etc/ocs /etc/
mkdir -p /opt/drbl/lib/; ln -fs /live_media/pkg/unifont.bgf /opt/drbl/lib/unifont.bgf

# Try to parse the kernel param
# 1. ocs_live_keymap
# 2. ocs_lang
ker_param_chklist="ocs_live_keymap ocs_lang"
parse_tmp="$(mktemp /tmp/cmdtmp.XXXXXX)"
for ik in $ker_param_chklist; do
  # the parameter maybe like: ocs_lang=en or ocs_lang="en"
  grep -oE "$ik=[\"]*.*[\"]*[[:space:]]+" /proc/cmdline > $parse_tmp
  # now we can get the variable $ocs_live_keymap or $ocs_lang
  . $parse_tmp
done
[ -f "$parse_tmp" ] && rm -f $parse_tmp

# tune the param in /etc/ocs-live.conf
for ik in $ker_param_chklist; do
  eval real_var=\$$ik
  if [ -n "$real_var" ]; then
    perl -pi -e "s/^.*$ik=.*/$ik=$real_var/g" /etc/ocs/ocs-live.conf
  fi
done
