#!/bin/sh
# postinst script for kylin-ostree-extra-utils
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package


# case "$1" in
#     configure)
#     ;;

#     abort-upgrade|abort-remove|abort-deconfigure)
#     ;;

#     *)
#         echo "postinst called with unknown argument \`$1'" >&2
#         exit 1
#     ;;
# esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#
systemctl enable ostree-extra-restore.service
# bash /usr/sbin/system-layer-upinit

dbus_system_conf="/usr/share/dbus-1/system.conf"
system_servicedir_line="<servicedir>/opt/system/resource/dbus-1/system-services</servicedir>"
system_includedir_line="<includedir>/opt/system/conf/dbus-1/system.d</includedir>"
if [ ! -f "$dbus_system_conf" ]; then
    echo "Not found $dbus_system_conf!"
else
    echo "Found $dbus_system_conf!"
    if grep -q "$system_servicedir_line" "$dbus_system_conf"; then
        echo "$dbus_system_conf already includes \"$system_servicedir_line\"!"
    else
        sed -i "/<standard_system_servicedirs\/>/a $system_servicedir_line" "$dbus_system_conf"
        echo "Successfully insert \"$system_servicedir_line\" in $dbus_system_conf!"
    fi
    if grep -q "$system_includedir_line" "$dbus_system_conf"; then
        echo "$dbus_system_conf already includes \"$system_includedir_line\"!"
    else
        sed -i "/<includedir>\/etc/a $system_includedir_line" "$dbus_system_conf"
        echo "Successfully insert \"$system_includedir_line\" in $dbus_system_conf!"
    fi
fi

dbus_session_conf="/usr/share/dbus-1/session.conf"
session_servicedir_line="<servicedir>/opt/system/resource/dbus-1/services</servicedir>"
session_includedir_line="<includedir>/opt/system/conf/dbus-1/session.d</includedir>"
if [ ! -f "$dbus_session_conf" ]; then
    echo "Not found $dbus_session_conf!"
else
    echo "Found $dbus_session_conf!"
    if grep -q "$session_servicedir_line" "$dbus_session_conf"; then
        echo "$dbus_session_conf already includes \"$session_servicedir_line\"!"
    else
        sed -i "/<standard_session_servicedirs \/>/a $session_servicedir_line" "$dbus_session_conf"
        echo "Successfully insert \"$session_servicedir_line\" in $dbus_session_conf!"
    fi
    if grep -q "$session_includedir_line" "$dbus_session_conf"; then
        echo "$dbus_session_conf already includes \"$session_includedir_line\"!"
    else
        sed -i "/<includedir>\/etc/a $session_includedir_line" "$dbus_session_conf"
        echo "Successfully insert \"$session_includedir_line\" in $dbus_session_conf!"
    fi
fi

sed -i 's/x86_64/'"$(uname -m)"'/g' /etc/ostree/compat-paths.conf

install_opt_dir() {
  if [ ! -d $1 ]; then
    mkdir -p $1
    echo "create directory: $1"
  fi
}

install_opt_dir /opt/appdata
install_opt_dir /opt/system/lib/peony-extensions
install_opt_dir /opt/system/lib/ukui-menu
install_opt_dir /opt/system/lib/ukui-shortcut-plugins
install_opt_dir /opt/system/lib/qt5/qml

usr_path="/usr/share"
for item in $(ls "$usr_path"); do
    case "$item" in
        *"kylin"*) install_opt_dir "/opt/system/resource/kylin/$item" ;;
        *"ukui"*) install_opt_dir "/opt/system/resource/ukui/$item" ;;
        *) install_opt_dir "/opt/system/resource/$item" ;;
    esac
done

install_opt_dir /opt/system/bin
chown -R root:root /opt/system/bin
chmod -R 755 /opt/system/bin

exit 0
