#!/bin/sh

# create HID rules
if [ -d "/etc/udev/rules.d/" ] && [ -w "/etc/udev/rules.d/" ]; then
  cat << 'EOF' >/etc/udev/rules.d/99-hidkey.rules 2>/dev/null
#
# HID rules
#
SUBSYSTEM=="usb", ATTRS{idVendor}=="072f", ATTRS{idProduct}=="100d", MODE="0666"
KERNEL=="hidraw*", ATTRS{idVendor}=="072f", ATTRS{idProduct}=="100d", MODE="0666"
#
SUBSYSTEM=="usb", ATTRS{idVendor}=="25dd", ATTRS{idProduct}=="23b4", MODE="0666"
KERNEL=="hidraw*", ATTRS{idVendor}=="25dd", ATTRS{idProduct}=="23b4", MODE="0666"
#
EOF
fi

# retrieve HOMEs base directory from defaults and copy config files and license
HOME_BASE=$(useradd -D | grep '^HOME=' | cut -d= -f2)
if [ -d "$HOME_BASE" ]; then
  find "$HOME_BASE" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | while IFS= read -r USER_HOME; do
    OLD_PROG_DIR="$USER_HOME/.dike"
    NEW_PROG_DIR="$USER_HOME/.gosign"
    if [ ! -e "$NEW_PROG_DIR" ] && [ -d "$OLD_PROG_DIR" ]; then
      OLD_PROG_DIR_UID=$(stat --format=%u "$OLD_PROG_DIR")
      OLD_PROG_DIR_GID=$(stat --format=%g "$OLD_PROG_DIR")
      OLD_PROG_DIR_PERM=$(stat --format=%a "$OLD_PROG_DIR")
      install --directory --owner="$OLD_PROG_DIR_UID" --group="$OLD_PROG_DIR_GID" --mode="$OLD_PROG_DIR_PERM" "$NEW_PROG_DIR" 1>/dev/null 2>/dev/null
      if [ -d "$NEW_PROG_DIR" ]; then
        [ -f "$OLD_PROG_DIR/dike.conf" ] && cp -p "$OLD_PROG_DIR/dike.conf" "$NEW_PROG_DIR" 1>/dev/null 2>/dev/null
        [ -f "$OLD_PROG_DIR/dike-r.conf" ] && cp -p "$OLD_PROG_DIR/dike-r.conf" "$NEW_PROG_DIR" 1>/dev/null 2>/dev/null
        [ -f "$OLD_PROG_DIR/license" ] && cp -p "$OLD_PROG_DIR/license" "$NEW_PROG_DIR" 1>/dev/null 2>/dev/null
      fi
    fi
  done
fi

exit 0
