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/>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# User-editable variables
 | 
			
		||||
host = "4.2.2.2" # IP or hostname
 | 
			
		||||
ping_frequency = 5 # in seconds
 | 
			
		||||
ping_log_max_size = 15
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Dependencies
 | 
			
		||||
#
 | 
			
		||||
@ -47,6 +42,10 @@ import re
 | 
			
		||||
import signal
 | 
			
		||||
# File paths
 | 
			
		||||
import os
 | 
			
		||||
#Argument parsing
 | 
			
		||||
import argparse
 | 
			
		||||
#for exit
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
# Vars
 | 
			
		||||
startup_active_label = "✓ Start Automatically"
 | 
			
		||||
@ -54,6 +53,42 @@ startup_inactive_label = "Start Automatically"
 | 
			
		||||
home_path = os.path.expanduser("~")
 | 
			
		||||
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
 | 
			
		||||
#
 | 
			
		||||
@ -83,7 +118,7 @@ class Pinger:
 | 
			
		||||
    self.ping_log.append(value)
 | 
			
		||||
    self.update_log_menu()
 | 
			
		||||
    # 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
 | 
			
		||||
      self.ping_log.pop(0) 
 | 
			
		||||
 | 
			
		||||
@ -103,7 +138,7 @@ class Pinger:
 | 
			
		||||
    with open(startup_path,'w') as f:
 | 
			
		||||
      f.write("[Desktop Entry]\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"
 | 
			
		||||
              "Name=Pinger\r\n"
 | 
			
		||||
              "Comment=Pings the internet every few seconds")
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user