cpfsyslog/sim/sim.py

40 lines
1004 B
Python
Executable File

#!/usr/bin/env python3
import socket
import os
from time import sleep
import argparse
from random import random
DEST = "127.0.0.1"
def main():
parser = argparse.ArgumentParser()
parser.add_argument("file")
parser.add_argument("port", type=int, default=4200)
parser.add_argument("rate", default=1)
args = parser.parse_args()
sleep_times = [float(i) for i in args.rate.split("-")]
def sleep_lenght():
if len(sleep_times) == 2:
return (max(sleep_times) - min(sleep_times)) * random() + min(sleep_times)
else:
return sleep_times[0]
with open(os.path.join(os.path.dirname(args.file), args.file), "r") as f:
lines = [line.rstrip().encode("UTF-8") for line in f]
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
for line in lines:
sock.sendto(line, (DEST, args.port))
print(sleep_lenght())
sleep(sleep_lenght())
if __name__ == '__main__':
main()