#!/usr/bin/python
import os
import glob
import sys
import subprocess


# Reading from multiple directories.
targetdir = '/home/jsperez/Desktop'
suffix = '*.pcapng'
if os.path.exists(targetdir):
    	print("directory found")
    	os.chdir(targetdir)
    	filelist = [i for i in glob.glob(format(suffix))]
    	print("===============")
    	print("List of files:")
   	print("===============")
    	print (filelist)
else:
    	print("cant find directory")


if len(sys.argv) == 1:
	print("Warning: No Tshark option specified")
	for i in filelist:
		print("Filename: " + i)
        	subprocess.call(["tshark", "-r", i])
elif len(sys.argv) == 2:
	for i in filelist:
		print("Filename: " + i)
    		subprocess.call(["tshark", "-r", i, sys.argv[1]])
elif len(sys.argv) == 3:
       	if sys.argv[2] == 'list_streams':
		print("===============")
		print("Listing relevant streams:")
		print("===============")
                for i in filelist:
	                print("Filename: " + i)
			p1 = subprocess.Popen(["tshark", "-r", i, sys.argv[1]], stdout=subprocess.PIPE)
			p2 = subprocess.Popen(["awk", "{print $7}"], stdin=p1.stdout, stdout=subprocess.PIPE)
			p3 = subprocess.Popen(["sort", "-n"], stdin=p2.stdout, stdout=subprocess.PIPE)
			p4 = subprocess.Popen(["uniq"], stdin=p3.stdout, stdout=subprocess.PIPE)
			p1.stdout.close()  # Allow p1 to receive a SIGPIPE if p2 exits.
			p2.stdout.close()  # Allow p2 to receive a SIGPIPE if p3 exits.
			p3.stdout.close()  # Allow p3 to receive a SIGPIPE if p4 exits.
			output,err = p4.communicate()
			print(output)
	else:
        	print("Error: Incorrect analysis operation")

