#!/bin/bash
#PupControl 3.6.1
#System Information GUI (radky)

[ "`whoami`" != "root" ] && exec sudo -A ${0} ${@}

export TEXTDOMAIN=pupcontrol
export OUTPUT_CHARSET=UTF-8

WORKDIR="/usr/local/PupControl"
PREFDIR="$WORKDIR/preferences"
CPANEL_ICONS_DIR="$WORKDIR/icons"
. /etc/DISTRO_SPECS

#define gtkdialog
[ "`which gtkdialog4 2>/dev/null`" ] && GTKDIALOG=gtkdialog4 || GTKDIALOG=gtkdialogALOG=gtkdialog

#auto-adjust header text color for light or dark GTK themes
if [ "`grep -a 'Stardust_dark' $HOME/.gtkrc-2.0 2>/dev/null`" ]; then #gold text for unique Stardust dark-grey-orange themes
  COLOR=#D7B740
else #light-blue text for common dark themes, otherwise medium blue
  [ "`grep -aEi 'black|dark|dusk|night|nox' $HOME/.gtkrc-2.0 2>/dev/null | grep -av xfdark`" ] && COLOR=#84aad9 || COLOR=#3272C0
fi
export COLOR

#define current window manager
CURRWM=`cat /etc/windowmanager`

#define text width
GUI_WIDTH=$(cat $PREFDIR/gui-width)
[ ! "$GUI_WIDTH" ] && GUI_WIDTH=640
TEXT_WIDTH=$(expr $GUI_WIDTH - 205)
TEXT_WIDTH=$(echo "scale=0; $TEXT_WIDTH / 3.0" | bc)

#define sysinfo apps
if [ "`which hardinfo`" ]; then
    HARDINFO="
    <hbox>
     <button tooltip-text=\" $(gettext 'Hardware information and benchmarks') \">
      <input file>/usr/share/hardinfo/pixmaps/memory.png</input><height>20</height><width>20</width>
      <action>hardinfo &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  HardInfo\"</label></text>
    </hbox>"
else
    HARDINFO=""
fi

if [ "`which inxi`" ]; then
    INXI="
    <hbox>
     <button tooltip-text=\" $(gettext 'System information script') \">
      <input file>$CPANEL_ICONS_DIR/sysinfo20.png</input>
      <action>$WORKDIR/func -inxi &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Inxi Report\"</label></text>
    </hbox>"
else
    INXI=""
fi

if [ "`grep -a scrollable /usr/sbin/ipinfo 2>/dev/null`" ]; then
    IP_INFO="
    <hbox>
     <button tooltip-text=\" $(gettext 'Active network configuration') \">
      <input file>$CPANEL_ICONS_DIR/netinfo20.png</input>
      <action>ipinfo &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Net Report\"</label></text>
    </hbox>"
elif [ -f /usr/local/Pup-SysInfo/Pup-SysInfo ]; then
    IP_INFO="
    <hbox>
     <button tooltip-text=\" $(gettext 'Active network configuration') \">
      <input file>$CPANEL_ICONS_DIR/netinfo20.png</input>
      <action>echo -e "'"▶—— $(gettext "Network Report") ——◀\n"'" > /tmp/pup-sysinfo.txt </action>
      <action>echo ""Marker for PSI network report."" > /tmp/PSI-network</action>
      <action>/usr/local/bin/Pup-SysInfo 2>/dev/null &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Net Report\"</label></text>
    </hbox>"
else
    IP_INFO=""
fi

if [ "`which pdiag`" ]; then
    PDIAG="
    <hbox>
     <button tooltip-text=\" $(gettext 'Diagnostic system information') \">
      <input file>$CPANEL_ICONS_DIR/reboot20.png</input>
      <action>pdiag &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Pdiag\"</label></text>
    </hbox>"
else
    PDIAG=""
fi

if [ -f /usr/local/Pup-Kview/Pup-Kview ]; then
    if [ -f /usr/local/Pup-Kview/icons/pupkview.svg ]; then
      pupkview_icon="/usr/local/Pup-Kview/icons/pupkview.svg"
    else
      pupkview_icon="/usr/local/Pup-Kview/icons/Pup-Kview48.png"
    fi
    PUPKVIEW="
    <hbox>
     <button tooltip-text=\" $(gettext 'Kernel module/driver information') \">
      <input file>$pupkview_icon</input><height>20</height><width>20</width>
      <action>/usr/local/Pup-Kview/Pup-Kview &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Pup-Kview\"</label></text>
    </hbox>"
else
    PUPKVIEW=""
fi

if [ -f /usr/local/Pup-SysInfo/Pup-SysInfo ]; then
    PUPSYSINFO="
    <hbox>
     <button tooltip-text=\" $(gettext 'Comprehensive system information') \">
      <input file>$CPANEL_ICONS_DIR/quickview20.png</input>
      <action>/usr/local/bin/Pup-SysInfo 2>/dev/null &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Pup-SysInfo\"</label></text>
    </hbox>"
else
    PUPSYSINFO=""
fi

if [ "`which pupscan`" ]; then
    PUPSCAN="
    <hbox>
     <button tooltip-text=\" $(gettext 'System hardware interface information') \">
      <input file>$CPANEL_ICONS_DIR/harddisk20.png</input>
      <action>pupscan &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  PupScan\"</label></text>
    </hbox>"
else
    PUPSCAN=""
fi

if [ "`which sys-info`" ]; then
    LH_SYSINFO="
    <hbox>
     <button tooltip-text=\" $(gettext 'Lighthouse system information manager') \">
      <input file>/usr/share/icons/sys-info.png</input><height>20</height><width>20</width>
      <action>sys-info &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Sys-Info\"</label></text>
    </hbox>"
else
    LH_SYSINFO=""
fi

if [ "`grep -a '\-quiet' /usr/sbin/report-video 2>/dev/null`" ]; then
 VIDEOINFO="report-video &"
elif [ "`which video-info-glx`" ]; then
 VIDEOINFO="video-info-glx &"
elif [ "`which video-info`" ]; then
 VIDEOINFO="video-info &"
elif [ -f /usr/local/Pup-SysInfo/Pup-SysInfo ]; then
 VIDEOINFO="echo ""Marker for PSI video report."" > /tmp/PSI-video; /usr/local/bin/Pup-SysInfo 2>/dev/null &"
fi

if [ "`grep -a '\-quiet' /usr/sbin/report-video`" -o "`which video-info-glx`" -o "`which video-info`" -o -f /usr/local/Pup-SysInfo/Pup-SysInfo ]; then
    VIDEO_REPORT="
    <hbox>
     <button tooltip-text=\" $(gettext 'Display and video-chip information') \">
      <input file>$CPANEL_ICONS_DIR/screen20.png</input>
      <action>$VIDEOINFO</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Video Report\"</label></text>
    </hbox>"
else
    VIDEO_REPORT=""
fi

if [ "`which glxgears`" ]; then
    GLXGEARS="
    <hbox>
     <button tooltip-text=\" $(gettext 'Basic assessment of video frame rate') \">
      <input file>$CPANEL_ICONS_DIR/remaster20.png</input>
      <action>export vblank_mode=0; rxvt -e glxgears &</action>
     </button>
      <text xalign=\"0\" width-request=\""$TEXT_WIDTH"\" use-markup=\"true\"><label>\"  Video FPS\"</label></text>
    </hbox>"
else
    GLXGEARS=""
fi

#Main dialog
export PCP_SYSINFO="<window title=\"PCP\" icon-name=\"control-panel_48\" resizable=\"false\">
  <vbox>
   <text use-markup=\"true\"><label>\"<b><span size='"'large'"'>Sys</span><span size='"'large'"' color='"$COLOR"'>Info</span></b>\"</label></text>
   <vbox margin=\"1\">
    $HARDINFO
    $INXI
    $IP_INFO
    $PDIAG
    $PUPKVIEW
    $PUPSYSINFO
    $PUPSCAN
    $LH_SYSINFO
    $VIDEO_REPORT
    $GLXGEARS
   </vbox>

   <hseparator></hseparator>

    <hbox space-expand=\"true\" space-fill=\"true\" homogeneous=\"true\">   
     <button width-request=\"70\">
      <label>$(gettext 'Close')</label>
      <action type=\"exit\">quit_now</action>
     </button>
    </hbox>
 </vbox>
</window>"

$GTKDIALOG --geometry +150+150 -p PCP_SYSINFO

unset PCP_SYSINFO

exit 0
