#!/bin/bash

##/local/bin/quick-system-info-mx
##wrapper script for inxi to do quick "inxi -F" and copy report to clipboard
##part of mx-goodies package
## changes to optimze inxi run

#requires xsel package

##locale stuff

TEXTDOMAINDIR=/usr/share/locale/
export TEXTDOMAIN="mx-goodies"

NOTFND=$(gettext 'Required inxi app not found')
COPIED=$(gettext 'Report copied to system clipboard')
FORMATTED=$(gettext 'Report is already formatted for forum.')
PASTE=$(gettext 'Paste directly into forum post.')
ANYKEY=$(gettext 'Press any key to close')
DONOTSHOW=$(gettext 'Do not show this message in future')

BOLD="<b>"
BOLDclosed="</b>"

#setup

main(){

    #check for existing of inxi

    command -v inxi  >/dev/null || quit_error "$NOTFND"

    run_report

    quit

}

run_report(){

    local snapshot_created=""
    if [ -e "/etc/snapshot_created" ]; then
        snapshot_created="Snapshot created on: "$(cat /etc/snapshot_created)
    fi
    local inxi_color="$(( echo VIRT_TERM_COLOR_SCHEME=10;
                          grep -sh '^VIRT_TERM_COLOR_SCHEME=' /etc/inxi.conf ~/.config/inxi.conf) | \
                          sed 's/^VIRT_TERM_COLOR_SCHEME=//' | tail -1)"
    local ansi='\x1b\[[0-9;]+[mK]'
    local host_filter="^(.+Host:(${ansi}|[[:space:]])+)([[:alnum:].-]+)"
    local uuid_filter="[[:xdigit:]]{8}-([[:xdigit:]]{4}-){3}[[:xdigit:]]{12}"
    local video_tweaks=/live/config/video-tweaks

    ( [ -n "$snapshot_created" ] && echo $snapshot_created
             inxi -Fxxxrza -c$inxi_color | \
             sed -r -e "/Host:/{s/${host_filter}(.*)/\1<filter>\4/}" \
                    -e "s/${uuid_filter}/<filter>/g"
             [ -r $video_tweaks ] && echo 'Video Tweaks:' && cat $video_tweaks 2>/dev/null
             ) | \
             tee >(
             ( echo "[code]";
             sed -r 's/\x1b\[([0-9]{1,2}(;[0-9]{1,2})?)?m//g';
             echo "[/code]" ) | \
             xclip -selection clipboard 2>/dev/null )

    xclip -o -selection clipboard | xclip -i -selection primary
    echo
    echo "$COPIED"
    echo "$FORMATTED"
    echo "$PASTE"

}

#quit(){
    #echo
    #read -n 1 -s -r -p "$ANYKEY"
    #exit 0
#}
quit(){
	
if [ -e /usr/bin/yad ]; then
	##begin message box
	
	if [ ! -e "$HOME/.config/MX-Linux/qsi.chk" ]; then
		selections=$(yad --form --title="Quick-system-info" --center --window-icon=mx-qsi --fixed --button=gtk-ok:0  --width=350 --height=100 --align=center \
		--selectable-labels --focus-field=0 \
		--field="\0":LBL ""\
		--field="$BOLD$COPIED$BOLDclosed":LBL ""\
		--field=" ":LBL ""\
		--field="$BOLD$FORMATTED$BOLDclosed":LBL ""\
		--field=" ":LBL ""\
		--field="$BOLD$PASTE$BOLDclosed":LBL ""\
		--field=" ":LBL ""\
		--field="$DONOTSHOW":CHK "false")    
    
		selections=${selections##"|||||||"} 
		selections=${selections%%"|"}
		#echo $selections
    
		if [ $selections = "TRUE" ]; then
			if [ ! -d "$HOME/.config/MX-Linux/" ]; then
				mkdir -p "$HOME/.config/MX-Linux/"
			fi
			touch "$HOME/.config/MX-Linux/qsi.chk"
		fi
	fi
    
	##end message box
fi

    echo
    read -n 1 -s -r -p "$ANYKEY"
    exit 0
}


quit_error(){
    local msg
    msg=$1
    echo "$msg"
    exit 1
}

main "$@"
