#!/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=""
BOLDclosed=""
#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\4/}" \
-e "s/${uuid_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 [ -x /usr/bin/yad ]; then
##begin message box
if [ ! -e "$HOME/.config/MX-Linux/qsi.chk" ]; then
selections=$(yad --form \
--title="Quick System Info" \
--class="Quick System Info" \
--center \
--window-icon=mx-qsi \
--fixed --button='OK!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" 2>/dev/null)
RET=$?
selections=${selections##"|||||||"}
selections=${selections%%"|"}
#echo $selections
if [ $RET = 0 ] && [ "$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 "$@"