Add support for command line arguments
Used argparse to enable command line arguments for user supplied options. Defaults values have been kept, so behavior with no arguments is the same. Should be easier than modifying the source each time this way. Also added a gitignore file that is the standard github python gitignore, plus *~ to handle deleted files.
This commit is contained in:
		
							parent
							
								
									a896903aac
								
							
						
					
					
						commit
						fdb23df9c0
					
				
							
								
								
									
										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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 AltF4
						AltF4