diff --git a/inxi b/inxi
index 6bc82e8..09c60ab 100755
--- a/inxi
+++ b/inxi
@@ -1,8 +1,8 @@
#!/bin/bash
########################################################################
#### Script Name: inxi
-#### version: 0.6.2
-#### Date: November 22 2008
+#### version: 0.7.0
+#### Date: November 23 2008
########################################################################
#### inxi is a fork of infobash 3.02, the original bash sys info script by locsmif
#### As time permits functionality improvements and recoding will occur.
@@ -30,6 +30,9 @@
####
#### You should have received a copy of the GNU General Public License
#### along with this program. If not, see .
+####
+#### If you don't understand what Free Software is, please read (or reread)
+#### this page: http://www.gnu.org/philosophy/free-sw.html
########################################################################
#### DEPENDENCIES
#### bash >=2.05b(bash), df;readlink;stty;tr;uname;wc(coreutils),
@@ -65,6 +68,10 @@
#### The color variable ${C2} must always be followed by a space unless you know what
#### character is going to be next for certain. Otherwise irc color codes can be accidentally
#### activated or altered.
+####
+#### For native script konversation support (check distro for correct konvi scripts path):
+#### ln -s /usr/share/apps/konversation/scripts/inxi
+#### DCOP doesn't like \n, so avoid using it for most output unless required, as in error messages.
########################################################################
#### TESTING FLAGS
#### inxi supports advanced testing triggers to do various things, using -!
@@ -326,30 +333,32 @@ script_debugger()
#### print / output cleaners
#### -------------------------------------------------------------------
-# inxi speaks through here. When run by Konversation, uses DCOP
-# note, this is a huge bug trap, for now we're not using this at all except to
-# output basic stuff. At some point in the future we'll debug the dcop stuff,
-# but that only works if inxi is being run as a konversation script to begin with
+# inxi speaks through here. When run by Konversation script alias mode, uses DCOP
+# for dcop to work, must use 'say' operator, AND colors must be evaluated by echo -e
+# note: dcop does not seem able to handle \n so that's being stripped out and replaced with space.
print_screen_output()
{
+ # the double quotes are needed to avoid losing whitespace in data when certain output types are used
+ local print_data="$( echo -e "$1" )"
+
if [[ $DEBUG -gt 5 ]];then
if [[ $KONVI -eq 1 ]];then
- dcop "$DCPORT" "$DCOPOBJ" print_screen_output "$DCSERVER" "$DCTARGET" "konvi='$KONVI' saying : '$@'"
+ # konvi doesn't seem to like \n characters, it just prints them literally
+ print_data="$( tr '\n' ' ' <<< "$print_data" )"
+ dcop "$DCPORT" "$DCOPOBJ" say "$DCSERVER" "$DCTARGET" "konvi='$KONVI' saying : '$print_data'"
+ elif [[ $KONVI -eq 2 ]];then
+ echo "konvi='$KONVI' saying : '$print_data'"
else
- echo "konvi='$KONVI' saying : '$@'"
+ echo "printing out: '$print_data'"
fi
- #echo "konvi='$KONVI' saying : '$@'"
- #((KONVI)) && dcop "$DCPORT" "$DCOPOBJ" print_screen_output "$DCSERVER" "$DCTARGET" "konvi='$KONVI' saying : '$@'" || echo "konvi='$KONVI' saying : '$@'"
fi
- #((KONVI)) && dcop $DCPORT Konversation print_screen_output $DCSERVER "$DCTARGET" "$1" || echo -ne "$1\n"
if [[ $KONVI -eq 1 ]];then
- dcop "$DCPORT" "$DCOPOBJ" print_screen_output "$DCSERVER" "$DCTARGET" "$1"
+ print_data="$( tr '\n' ' ' <<< "$print_data" )"
+ dcop "$DCPORT" "$DCOPOBJ" say "$DCSERVER" "$DCTARGET" "$print_data"
else
- echo -ne "$1\n"
+ echo -e "$print_data\n"
fi
- #((KONVI)) && dcop "$DCPORT" "$DCOPOBJ" print_screen_output "$DCSERVER" "$DCTARGET" "$1" || echo -ne "$1\n"
- # echo -ne "$1\n"
}
## this handles all verbose line construction with indentation/line starter
@@ -404,6 +413,8 @@ sanitize_characters()
check_script_depends()
{
local app_name='' app_data=''
+ # bc removed from deps for now
+ local depends="df free gawk grep hostname lspci ps readlink runlevel tr uname uptime wc"
if [[ ! -d /proc/ ]];then
error_handler 6
@@ -414,7 +425,7 @@ check_script_depends()
do
app_data=$( type -p $app_name )
if [[ -z $app_data ]];then
- script_debugger "inxi: Resuming in non X mode: $app_name not found in path"
+ script_debugger "Resuming in non X mode: $app_name not found in path"
B_X_RUNNING='false'
break
fi
@@ -422,8 +433,8 @@ check_script_depends()
fi
app_name=''
- # bc removed from deps for now
- for app_name in df free gawk grep hostname lspci ps readlink runlevel tr uname uptime wc
+
+ for app_name in $depends
do
app_data=$( type -p $app_name )
if [[ -z $app_data ]];then
@@ -467,7 +478,8 @@ set_color_scheme()
if [[ $1 -ge ${#A_COLOR_SCHEMES[@]} ]];then
set -- 1
fi
- SCHEME="$1" # Set a global variable to allow checking for chosen scheme later
+ # Set a global variable to allow checking for chosen scheme later
+ SCHEME="$1"
if [[ $B_RUNNING_IN_SHELL == 'true' ]];then
color_codes=( $ANSI_COLORS )
else
@@ -480,6 +492,7 @@ set_color_scheme()
IFS=","
script_colors=( ${A_COLOR_SCHEMES[$1]} )
IFS="$ORIGINAL_IFS"
+ # then assign the colors globally
C1="${!script_colors[0]}"
C2="${!script_colors[1]}"
CN="${!script_colors[2]}"
@@ -760,7 +773,8 @@ script_self_updater()
wget -q -O $SCRIPT_PATH/$SCRIPT_NAME $1$SCRIPT_NAME || wget_error=$?
if [[ $wget_error -eq 0 ]];then
SCRIPT_VERSION_NUMBER=$( grep -im 1 'version:' $SCRIPT_PATH/$SCRIPT_NAME | gawk '{print $3}' )
- print_screen_output "Successfully updated to $2 version: $SCRIPT_VERSION_NUMBER\nTo run the new version, just start $SCRIPT_NAME again."
+ print_screen_output "Successfully updated to $2 version: $SCRIPT_VERSION_NUMBER"
+ print_screen_output "To run the new version, just start $SCRIPT_NAME again."
exit 0
fi
fi
@@ -1841,8 +1855,8 @@ get_networking_wan_ip_data()
{
local ip=''
- # get ip using wget redirect to stdout
- ip=$( wget -q -O - http://techpatterns.com/resources/ip.php | awk -F 'is: ' '{
+ # get ip using wget redirect to stdout. This is a clean, text only IP output url.
+ ip=$( wget -q -O - http://smxi.org/opt/ip.php | awk -F 'is: ' '{
#gsub("\n","",$2")
print $2
}' )