mirror of
https://github.com/kforney/pentest-distro-builder.git
synced 2024-11-01 08:59:11 -06:00
Kaj Forney
f7da7f3982
Former-commit-id: d5258c85bc
Former-commit-id: aaf57e63c1976b3960fee717c68c3b09dc1a94ff
129 lines
2.4 KiB
Bash
129 lines
2.4 KiB
Bash
#!/bin/bash -
|
|
|
|
##
|
|
# Varialbes
|
|
##
|
|
DOWNLOAD_FILE="/tmp/tmux_net_speed.download"
|
|
UPLOAD_FILE="/tmp/tmux_net_speed.upload"
|
|
|
|
get_tmux_option() {
|
|
local option=$1
|
|
local default_value=$2
|
|
local option_value="$(tmux show-option -gqv "$option")"
|
|
|
|
if [[ -z "$option_value" ]]; then
|
|
echo "$default_value"
|
|
else
|
|
echo "$option_value"
|
|
fi
|
|
}
|
|
|
|
set_tmux_option() {
|
|
local option=$1
|
|
local value=$2
|
|
tmux set-option -gq "$option" "$value"
|
|
}
|
|
|
|
get_velocity()
|
|
{
|
|
local new_value=$1
|
|
local old_value=$2
|
|
|
|
# Consts
|
|
local THOUSAND=1024
|
|
local MILLION=1048576
|
|
|
|
local vel=$(( new_value - old_value ))
|
|
local vel_kb=$(( vel / THOUSAND ))
|
|
local vel_mb=$(( vel / MILLION ))
|
|
|
|
if [[ $vel_mb != 0 ]] ; then
|
|
echo -n "$vel_mb MB/s"
|
|
elif [[ $vel_kb != 0 ]] ; then
|
|
echo -n "$vel_kb KB/s";
|
|
else
|
|
echo -n "$vel B/s";
|
|
fi
|
|
}
|
|
|
|
# Reads from value from file. If file does not exist,
|
|
# is empty, or not readable, starts back at 0
|
|
read_file()
|
|
{
|
|
local path="$1"
|
|
local fallback_val=0
|
|
|
|
# File exists and is readdable?
|
|
if [[ ! -f "$path" ]] ; then
|
|
echo $fallback_val
|
|
return 1
|
|
elif [[ ! -r "$path" ]]; then
|
|
echo $fallback_val
|
|
return 1
|
|
fi
|
|
|
|
|
|
# Does the file have content?
|
|
tmp=$(< "$path")
|
|
if [[ "x${tmp}" == "x" ]] ; then
|
|
echo $fallback_val
|
|
return 1
|
|
fi
|
|
|
|
# Now return known value
|
|
echo $tmp
|
|
}
|
|
|
|
# Update values in file
|
|
write_file()
|
|
{
|
|
local path="$1"
|
|
local val="$2"
|
|
|
|
# TODO Add error checking
|
|
echo "$val" > "$path"
|
|
}
|
|
|
|
get_interfaces()
|
|
{
|
|
local interfaces=$(get_tmux_option @net_speed_interfaces "")
|
|
|
|
if [[ -z "$interfaces" ]] ; then
|
|
for interface in /sys/class/net/*; do
|
|
interfaces+=$(echo $(basename $interface) " ");
|
|
done
|
|
fi
|
|
|
|
# Do not quote the variable. This way will handle trailing whitespace
|
|
echo -n $interfaces
|
|
}
|
|
|
|
sum_speed()
|
|
{
|
|
local column=$1
|
|
|
|
declare -a interfaces=$(get_interfaces)
|
|
|
|
local line=""
|
|
local val=0
|
|
for intf in ${interfaces[@]} ; do
|
|
line=$(cat /proc/net/dev | grep "$intf" | cut -d':' -f 2)
|
|
speed="$(echo -n $line | cut -d' ' -f $column)"
|
|
let val+=${speed:=0}
|
|
done
|
|
|
|
echo $val
|
|
}
|
|
|
|
is_osx() {
|
|
[ $(uname) == "Darwin" ]
|
|
}
|
|
|
|
is_cygwin() {
|
|
command -v WMIC > /dev/null
|
|
}
|
|
|
|
command_exists() {
|
|
local command="$1"
|
|
type "$command" >/dev/null 2>&1
|
|
}
|