Merge pull request #1 from altf4/args
Add support for command line arguments
This commit is contained in:
commit
fd518eb4b4
53
.gitignore
vendored
Normal file
53
.gitignore
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
bin/
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
.tox/
|
||||||
|
.coverage
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
|
||||||
|
# Mr Developer
|
||||||
|
.mr.developer.cfg
|
||||||
|
.project
|
||||||
|
.pydevproject
|
||||||
|
|
||||||
|
# Rope
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
#deleted files
|
||||||
|
*~
|
49
pinger.py
Normal file → Executable file
49
pinger.py
Normal file → Executable file
|
@ -25,11 +25,6 @@
|
||||||
# <http://www.gnu.org/licenses/>
|
# <http://www.gnu.org/licenses/>
|
||||||
#
|
#
|
||||||
|
|
||||||
# User-editable variables
|
|
||||||
host = "4.2.2.2" # IP or hostname
|
|
||||||
ping_frequency = 5 # in seconds
|
|
||||||
ping_log_max_size = 15
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Dependencies
|
# Dependencies
|
||||||
#
|
#
|
||||||
|
@ -47,6 +42,10 @@ import re
|
||||||
import signal
|
import signal
|
||||||
# File paths
|
# File paths
|
||||||
import os
|
import os
|
||||||
|
#Argument parsing
|
||||||
|
import argparse
|
||||||
|
#for exit
|
||||||
|
import sys
|
||||||
|
|
||||||
# Vars
|
# Vars
|
||||||
startup_active_label = "✓ Start Automatically"
|
startup_active_label = "✓ Start Automatically"
|
||||||
|
@ -54,6 +53,42 @@ startup_inactive_label = "Start Automatically"
|
||||||
home_path = os.path.expanduser("~")
|
home_path = os.path.expanduser("~")
|
||||||
startup_path = home_path+'/.config/autostart/pinger.desktop'
|
startup_path = home_path+'/.config/autostart/pinger.desktop'
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("-t", "--target", help="Target to PING against. (IP / Hostname / Domain name). Defaults to 4.2.2.2")
|
||||||
|
parser.add_argument("-f", "--freq", help="Timeout between pings, in seconds. Defaults to 5")
|
||||||
|
parser.add_argument("-m", "--maxlog", help="Maximum amount of pings to log. Defaults to 15")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
#accumulate the arguments for use later
|
||||||
|
arguments = ""
|
||||||
|
for arg in sys.argv[1:]:
|
||||||
|
arguments += arg + " "
|
||||||
|
|
||||||
|
# User-editable variables
|
||||||
|
if args.target:
|
||||||
|
host = args.target
|
||||||
|
else:
|
||||||
|
host = "4.2.2.2" # IP or hostname
|
||||||
|
print "Using default target IP of 4.2.2.2"
|
||||||
|
|
||||||
|
if args.freq:
|
||||||
|
try:
|
||||||
|
ping_frequency = int(args.freq)
|
||||||
|
except ValueError:
|
||||||
|
sys.stderr.write("Error parsing argument '--freq'\n")
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
ping_frequency = 5 # in seconds
|
||||||
|
|
||||||
|
if args.maxlog:
|
||||||
|
try:
|
||||||
|
ping_log_max_size = int(args.maxlog)
|
||||||
|
except ValueError:
|
||||||
|
sys.stderr.write("Error parsing argument '--maxlog'\n")
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
ping_log_max_size = 15
|
||||||
|
|
||||||
#
|
#
|
||||||
# Main Class
|
# Main Class
|
||||||
#
|
#
|
||||||
|
@ -83,7 +118,7 @@ class Pinger:
|
||||||
self.ping_log.append(value)
|
self.ping_log.append(value)
|
||||||
self.update_log_menu()
|
self.update_log_menu()
|
||||||
# limit the size of the log
|
# limit the size of the log
|
||||||
if len(self.ping_log) > ping_log_max_size:
|
if len(self.ping_log) >= ping_log_max_size:
|
||||||
# remove the earliest ping, not the latest
|
# remove the earliest ping, not the latest
|
||||||
self.ping_log.pop(0)
|
self.ping_log.pop(0)
|
||||||
|
|
||||||
|
@ -103,7 +138,7 @@ class Pinger:
|
||||||
with open(startup_path,'w') as f:
|
with open(startup_path,'w') as f:
|
||||||
f.write("[Desktop Entry]\r\n"
|
f.write("[Desktop Entry]\r\n"
|
||||||
"Type=Application\r\n"
|
"Type=Application\r\n"
|
||||||
"Exec=python "+os.path.abspath( __file__ )+"\r\n"
|
"Exec=python "+os.path.abspath( __file__ )+arguments+"\r\n"
|
||||||
"X-GNOME-Autostart-enabled=true\r\n"
|
"X-GNOME-Autostart-enabled=true\r\n"
|
||||||
"Name=Pinger\r\n"
|
"Name=Pinger\r\n"
|
||||||
"Comment=Pings the internet every few seconds")
|
"Comment=Pings the internet every few seconds")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user