New tarball, version, man page. Improved remote weather, now it uses -W, and deprecated -! location=..

That was too hard to type and too hard to remember. Also do more dyanamic reordering of weather
output, depending on how much data is present, and how many x options are used.

Added error handling for generic deprecated options, and for options that do not have the correct
syntax for OPTARG, like with -W.

This should about do it for the weather option for now unless I missed something somewhere.
This commit is contained in:
inxi-svn 2013-05-26 03:19:38 +00:00
parent c27514aa58
commit c6905ed8e8
3 changed files with 95 additions and 46 deletions

88
inxi
View file

@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
######################################################################## ########################################################################
#### Script Name: inxi #### Script Name: inxi
#### Version: 1.9.6 #### Version: 1.9.7
#### Date: May 19 2013 #### Date: May 25 2013
#### Patch Number: 00 #### Patch Number: 00
######################################################################## ########################################################################
#### SPECIAL THANKS #### SPECIAL THANKS
@ -1207,7 +1207,7 @@ select_default_color_scheme()
#### ------------------------------------------------------------------- #### -------------------------------------------------------------------
# Error handling # Error handling
# args: $1 - error number; $2 - optional, extra information # args: $1 - error number; $2 - optional, extra information; $3 - optional extra info
error_handler() error_handler()
{ {
eval $LOGFS eval $LOGFS
@ -1255,6 +1255,12 @@ error_handler()
17) 17)
error_message="All $SCRIPT_NAME self updater features have been disabled by the distribution\npackage maintainer. This includes the option you used: $2" error_message="All $SCRIPT_NAME self updater features have been disabled by the distribution\npackage maintainer. This includes the option you used: $2"
;; ;;
18)
error_message="The argument you provided for $2 does not have supported syntax.\nPlease use the following formatting:\n$3"
;;
19)
error_message="The option $2 has been deprecated. Please use $3 instead.\nSee -h for instructions and syntax."
;;
20) 20)
error_message="The option you selected has been deprecated. $2\nSee the -h (help) menu for currently supported options." error_message="The option you selected has been deprecated. $2\nSee the -h (help) menu for currently supported options."
;; ;;
@ -2004,12 +2010,13 @@ remove_erroneous_chars()
get_parameters() get_parameters()
{ {
eval $LOGFS eval $LOGFS
local opt='' wget_test='' debug_data_type='' weather_flag='w' local opt='' wget_test='' debug_data_type='' weather_flag='wW:'
local use_short='true' # this is needed to trigger short output, every v/d/F/line trigger sets this false local use_short='true' # this is needed to trigger short output, every v/d/F/line trigger sets this false
# if distro maintainers don't want the weather feature disable it # if distro maintainers don't want the weather feature disable it
if [[ $B_ALLOW_WEATHER == 'false' ]];then if [[ $B_ALLOW_WEATHER == 'false' ]];then
weather_flag='' weather_flag=''
fi fi
if [[ $1 == '--version' ]];then if [[ $1 == '--version' ]];then
print_version_info print_version_info
@ -2239,6 +2246,14 @@ get_parameters()
w) B_SHOW_WEATHER=true w) B_SHOW_WEATHER=true
use_short='false' use_short='false'
;; ;;
W) ALTERNATE_WEATHER_LOCATION=$( sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' <<< $OPTARG )
if [[ -n $( grep -Esi '([^,]+,.+|[0-9-]+)' <<< $ALTERNATE_WEATHER_LOCATION ) ]];then
B_SHOW_WEATHER=true
use_short='false'
else
error_handler 18 "-$opt: '$OPTARG'" "city,state OR latitude,longitude OR postal/zip code."
fi
;;
# this will trigger either with x, xx, xxx or with Fx but not with xF # this will trigger either with x, xx, xxx or with Fx but not with xF
x) if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then x) if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
B_EXTRA_EXTRA_EXTRA_DATA='true' B_EXTRA_EXTRA_EXTRA_DATA='true'
@ -2359,7 +2374,7 @@ get_parameters()
;; ;;
# for weather function, allows user to set an alternate weather location # for weather function, allows user to set an alternate weather location
location=*) location=*)
ALTERNATE_WEATHER_LOCATION=$( sed 's/location=//' <<< $OPTARG ) error_handler 19 "-$opt location=" "-W"
;; ;;
*) error_handler 11 "$OPTARG" *) error_handler 11 "$OPTARG"
;; ;;
@ -2477,8 +2492,11 @@ show_options()
print_screen_output " 7 - Network IP data (-i); triggers -xxx." print_screen_output " 7 - Network IP data (-i); triggers -xxx."
# if distro maintainers don't want the weather feature disable it # if distro maintainers don't want the weather feature disable it
if [[ $B_ALLOW_WEATHER == 'true' ]];then if [[ $B_ALLOW_WEATHER == 'true' ]];then
print_screen_output "-w Local weather data/time. To check an alternate location, see: -! location=<location>." print_screen_output "-w Local weather data/time. To check an alternate location, see: -W <location>."
print_screen_output " For extra data options see -x, -xx, and -xxx." print_screen_output " For extra weather data options see -x, -xx, and -xxx."
print_screen_output "-W <location> - <location> supported options: postal code; city,[state/country]; latitude,longitude"
print_screen_output " Only use if you want the weather somewhere other than the machine running $SCRIPT_NAME."
print_screen_output " Use only ascii characters, replace spaces in city/state/country names with +: new+york,ny"
fi fi
print_screen_output "-x Adds the following extra data (only works with verbose or line output, not short form): " print_screen_output "-x Adds the following extra data (only works with verbose or line output, not short form): "
print_screen_output " -C - Bogomips on Cpu;" print_screen_output " -C - Bogomips on Cpu;"
@ -2498,7 +2516,7 @@ show_options()
print_screen_output " -S - Desktop toolkit if avaliable (GNOME/XFCE/KDE only); Kernel gcc version" print_screen_output " -S - Desktop toolkit if avaliable (GNOME/XFCE/KDE only); Kernel gcc version"
print_screen_output " -t - Memory use output to cpu (-xt c), and cpu use to memory (-xt m)." print_screen_output " -t - Memory use output to cpu (-xt c), and cpu use to memory (-xt m)."
if [[ $B_ALLOW_WEATHER == 'true' ]];then if [[ $B_ALLOW_WEATHER == 'true' ]];then
print_screen_output " -w - Wind speed and time zone." print_screen_output " -w/-W - Wind speed and time zone (-w only)."
fi fi
print_screen_output "-xx Show extra, extra data (only works with verbose or line output, not short form): " print_screen_output "-xx Show extra, extra data (only works with verbose or line output, not short form): "
print_screen_output " -A - Chip vendor:product ID for each audio device." print_screen_output " -A - Chip vendor:product ID for each audio device."
@ -2513,13 +2531,13 @@ show_options()
print_screen_output " Resync line, shows progress bar." print_screen_output " Resync line, shows progress bar."
print_screen_output " -S - Display manager (dm) in desktop output, if in X (like kdm, gdm3, lightdm)." print_screen_output " -S - Display manager (dm) in desktop output, if in X (like kdm, gdm3, lightdm)."
if [[ $B_ALLOW_WEATHER == 'true' ]];then if [[ $B_ALLOW_WEATHER == 'true' ]];then
print_screen_output " -w - Humidity, barometric pressure." print_screen_output " -w/-W - Humidity, barometric pressure."
fi fi
print_screen_output " -xx -@ <11-14> - Automatically uploads debugger data tar.gz file to ftp.techpatterns.com." print_screen_output " -xx -@ <11-14> - Automatically uploads debugger data tar.gz file to ftp.techpatterns.com."
print_screen_output "-xxx Show extra, extra, extra data (only works with verbose or line output, not short form): " print_screen_output "-xxx Show extra, extra, extra data (only works with verbose or line output, not short form): "
print_screen_output " -S - Panel/shell information in desktop output, if in X (like gnome-shell, cinnamon, mate-panel)." print_screen_output " -S - Panel/shell information in desktop output, if in X (like gnome-shell, cinnamon, mate-panel)."
if [[ $B_ALLOW_WEATHER == 'true' ]];then if [[ $B_ALLOW_WEATHER == 'true' ]];then
print_screen_output " -w - Location (uses -z/irc filter), weather observation time, wind chill, heat index," print_screen_output " -w/-W - Location (uses -z/irc filter), weather observation time, wind chill, heat index,"
print_screen_output " dew point (shows extra lines for data where relevant)." print_screen_output " dew point (shows extra lines for data where relevant)."
fi fi
print_screen_output "-z Security filters for IP/Mac addresses, location, user home directory name. Default on for irc clients." print_screen_output "-z Security filters for IP/Mac addresses, location, user home directory name. Default on for irc clients."
@ -2554,11 +2572,7 @@ show_options()
print_screen_output "Advanced Options:" print_screen_output "Advanced Options:"
print_screen_output "-! 31 Turns off hostname in output. Useful if showing output from servers etc." print_screen_output "-! 31 Turns off hostname in output. Useful if showing output from servers etc."
print_screen_output "-! 32 Turns on hostname in output. Overrides global B_SHOW_HOST='false'" print_screen_output "-! 32 Turns on hostname in output. Overrides global B_SHOW_HOST='false'"
if [[ $B_ALLOW_WEATHER == 'true' ]];then
print_screen_output "-! location=<location> - <location> Supported: postal code; city,[state/country]; latitude,longitude"
print_screen_output " Only use if you want the weather somewhere other than the machine running $SCRIPT_NAME."
print_screen_output " Must be used with -w. Only ascii, replace spaces in city/state/country names with +: new+york,ny"
fi
if [[ $1 == 'full' ]];then if [[ $1 == 'full' ]];then
print_screen_output " " print_screen_output " "
print_screen_output "Developer and Testing Options (Advanced):" print_screen_output "Developer and Testing Options (Advanced):"
@ -10689,7 +10703,7 @@ print_weather_data()
local weather_data='' location_string='' local_time='' time_string='' pressure='' local weather_data='' location_string='' local_time='' time_string='' pressure=''
local a_location='' a_weather='' weather_string='' weather='' temp='' winds='' humidity='' local a_location='' a_weather='' weather_string='' weather='' temp='' winds='' humidity=''
local time_zone='' observation_time='' city='' state='' country='' altitude='' local time_zone='' observation_time='' city='' state='' country='' altitude=''
local heat_index="" wind_chill='' dewpoint='' local heat_index="" wind_chill='' dewpoint='' xxx_humidity=''
local openP='(' closeP=')' local openP='(' closeP=')'
if [[ $B_RUNNING_IN_SHELL == 'false' ]];then if [[ $B_RUNNING_IN_SHELL == 'false' ]];then
@ -10745,7 +10759,7 @@ print_weather_data()
if [[ $B_EXTRA_DATA == 'true' && -n ${a_location[8]} ]];then if [[ $B_EXTRA_DATA == 'true' && -n ${a_location[8]} ]];then
time_zone=" (${a_location[8]})" time_zone=" (${a_location[8]})"
fi fi
time_string="$pressure${C1}Time$SEP3${C2}$local_time$time_zone" time_string="${C1}Time$SEP3${C2}$local_time$time_zone"
if [[ $B_EXTRA_DATA != 'true' ]];then if [[ $B_EXTRA_DATA != 'true' ]];then
weather_data="$weather_string $time_string" weather_data="$weather_string $time_string"
@ -10765,18 +10779,8 @@ print_weather_data()
if [[ -n ${a_weather[7]} ]];then if [[ -n ${a_weather[7]} ]];then
dew_point="${C1}Dew Point$SEP3${C2} ${a_weather[7]} " dew_point="${C1}Dew Point$SEP3${C2} ${a_weather[7]} "
fi fi
# these were blank in my tests
if [[ -n "$heat_index$wind_chill$dew_point" ]];then
weather_data=$( create_print_line " " "$heat_index$wind_chill$dew_point" )
print_screen_output "$weather_data"
fi
fi
weather_data="$time_string"
weather_data=$( create_print_line " " "$weather_data" )
print_screen_output "$weather_data"
if [[ $B_EXTRA_EXTRA_EXTRA_DATA == 'true' ]];then
if [[ -n ${a_weather[0]} ]];then if [[ -n ${a_weather[0]} ]];then
observation_time="${C1}Observation Time$SEP3${C2} ${a_weather[0]} " observation_time=" ${C1}Observation Time$SEP3${C2} ${a_weather[0]} "
fi fi
if [[ $B_OUTPUT_FILTER != 'true' ]];then if [[ $B_OUTPUT_FILTER != 'true' ]];then
if [[ -n ${a_location[0]} ]];then if [[ -n ${a_location[0]} ]];then
@ -10792,9 +10796,33 @@ print_weather_data()
altitude=" ${C1}Altitude$SEP3${C2} ${a_weather[10]}" altitude=" ${C1}Altitude$SEP3${C2} ${a_weather[10]}"
fi fi
location_string="${C1}Location$SEP3${C2}$city$state$country$altitude " location_string="${C1}Location$SEP3${C2}$city$state$country$altitude "
else
location_string=$time_string$observation_time
time_string=''
observation_time=''
fi
# the last three are oftenblank
if [[ -z "$heat_index$wind_chill$dew_point" ]];then
weather_data=$( create_print_line " " "$pressure$location_string" )
print_screen_output "$weather_data"
else
weather_data=$( create_print_line " " "$pressure$heat_index$wind_chill$dew_point" )
print_screen_output "$weather_data"
if [[ $B_OUTPUT_FILTER != 'true' ]];then
weather_data=$( create_print_line " " "$location_string" )
print_screen_output "$weather_data"
fi
fi
if [[ -n $time_string$observation_time ]];then
weather_data=$( create_print_line " " "$time_string$observation_time" )
print_screen_output "$weather_data"
fi
else
if [[ -n $pressure$time_string ]];then
weather_data="$pressure$time_string"
weather_data=$( create_print_line " " "$weather_data" )
print_screen_output "$weather_data"
fi fi
weather_data=$( create_print_line " " "$location_string$observation_time" )
print_screen_output "$weather_data"
fi fi
fi fi
else else

33
inxi.1
View file

@ -1,4 +1,4 @@
.TH INXI 1 "2013\-05\-18" inxi "inxi manual" .TH INXI 1 "2013\-05\-25" inxi "inxi manual"
.SH NAME .SH NAME
inxi \- Command line system information script for console and IRC inxi \- Command line system information script for console and IRC
@ -251,8 +251,16 @@ triggers \fB\-xx\fR extra data option.
.TP .TP
.B \-w .B \-w
Adds weather line. Note, this depends on an unreliable api so it may not always be working in the future. Adds weather line. Note, this depends on an unreliable api so it may not always be working in the future.
To get weather for an alternate location, use also the \-! location=<location_string>. See also \-x, \-xx, \-xxx option. To get weather for an alternate location, use \-W <location_string>. See also \-x, \-xx, \-xxx option.
Please note, your distribution's maintainer may chose to disable this feature, so if \-w doesn't work, that's why. Please note, your distribution's maintainer may chose to disable this feature, so if \-w or \-W don't work, that's why.
.TP
.B \-W <location_string>
Get weather/time for an alternate location. Accepts postal/zip code, city,state pair, or latitude,longitude.
Note: city/country/state names must not contain spaces. Replace spaces with '+' sign. No spaces around , (comma).
Use only ascii letters in city/state/country names, sorry.
Examples: \-W 95623 OR \-W Boston,MA OR \-W45.5234,\-122.6762 OR \-W new+york,ny
OR \-W bodo,norway.
.TP .TP
.B \-z .B \-z
Adds security filters for IP addresses, Mac, location (\-w), and user home directory name. Default on for irc clients. Adds security filters for IP addresses, Mac, location (\-w), and user home directory name. Default on for irc clients.
@ -327,8 +335,8 @@ The following shows which lines / items get extra information with each extra da
.B \-x \-t .B \-x \-t
\- Adds memory use output to cpu (\fB\-xt c\fR), and cpu use to memory (\fB\-xt m\fR). \- Adds memory use output to cpu (\fB\-xt c\fR), and cpu use to memory (\fB\-xt m\fR).
.TP .TP
.B \-x \-w .B \-x \-w / \-W
\- Adds wind speed and time zone, and makes output go to two lines. \- Adds wind speed and time zone (\-w only), and makes output go to two lines.
.TP .TP
.B \-xx \-A .B \-xx \-A
\- Adds vendor:product ID of each Audio device. \- Adds vendor:product ID of each Audio device.
@ -360,7 +368,7 @@ resync progress line as well.
\- Adds, if run in X, display manager type to Desktop information, if present. If none, shows N/A. \- Adds, if run in X, display manager type to Desktop information, if present. If none, shows N/A.
Supports most known display managers, like xdm, gdm, kdm, slim, lightdm, or mdm. Supports most known display managers, like xdm, gdm, kdm, slim, lightdm, or mdm.
.TP .TP
.B \-xx \-w .B \-xx \-w / \-W
\- Adds humidity and barometric pressure. \- Adds humidity and barometric pressure.
.TP .TP
.B \-xx \-@ <11\-14> .B \-xx \-@ <11\-14>
@ -370,9 +378,9 @@ Supports most known display managers, like xdm, gdm, kdm, slim, lightdm, or mdm.
\- Adds, if run in X, shell/panel type info to Desktop information, if present. If none, shows nothing. \- Adds, if run in X, shell/panel type info to Desktop information, if present. If none, shows nothing.
Supports some current desktop extras like gnome\-panel, lxde\-panel, and others. Added mainly for Mint support. Supports some current desktop extras like gnome\-panel, lxde\-panel, and others. Added mainly for Mint support.
.TP .TP
.B \-xxx \-w .B \-xxx \-w / \-W
\- Adds third line of information: location (city state country), weather observation time, altitude of system. \- Adds location (city state country), weather observation time, altitude of system.
If wind chill, heat index, or dew point are available, adds a line for to hold that data as well. If wind chill, heat index, or dew point are available, shows that data as well.
.SH ADVANCED OPTIONS .SH ADVANCED OPTIONS
.TP .TP
@ -383,13 +391,6 @@ forums or IRC.
.B \-! 32 .B \-! 32
Turns on hostname in System line. Overrides inxi config file value (if set): B_SHOW_HOST='false'. Turns on hostname in System line. Overrides inxi config file value (if set): B_SHOW_HOST='false'.
.TP
.B \-! location=<location_string>
With \-w, get weather for an alternate location. Accepts postal/zip code, city,state pair, or latitude,longitude.
Note: city/country/state names must not contain spaces. Replace spaces with '+' sign. Must have space between -! and location=. No spaces around = sign. Use only ascii letters in city/state/country names, sorry.
Examples: \-! location=95623 OR \-! location=Boston,MA OR \-! location=45.5234,\-122.6762 OR \-! location=new+york,ny
OR \-! location=bodo,norway OR \-! location=
.SH DEBUGGING OPTIONS .SH DEBUGGING OPTIONS
.TP .TP
.B \-% .B \-%

View file

@ -1,3 +1,23 @@
=====================================================================================
Version: 1.9.7
Patch Version: 00
Script Date: May 25 2013
-----------------------------------
Changes:
-----------------------------------
New tarball, version, man page. Improved remote weather, now it uses -W, and deprecated -! location=..
That was too hard to type and too hard to remember. Also do more dyanamic reordering of weather
output, depending on how much data is present, and how many x options are used.
Added error handling for generic deprecated options, and for options that do not have the correct
syntax for OPTARG, like with -W.
This should about do it for the weather option for now unless I missed something somewhere.
-----------------------------------
-- Harald Hope - Sat, 25 May 2013 20:16:01 -0700
===================================================================================== =====================================================================================
Version: 1.9.6 Version: 1.9.6
Patch Version: 00 Patch Version: 00