aboutsummaryrefslogtreecommitdiffstats
path: root/src/wqueue.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/wqueue.py')
-rwxr-xr-xsrc/wqueue.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/wqueue.py b/src/wqueue.py
new file mode 100755
index 0000000..7120bf4
--- /dev/null
+++ b/src/wqueue.py
@@ -0,0 +1,66 @@
+#!/usr/bin/python3
+
+import fcntl
+import time
+import subprocess
+import os
+import asyncio
+
+QUEUE_FILE = 'queue.txt'
+COMMAND = './command.sh'
+
+
+# loop = asyncio.get_event_loop()
+
+
+# class JobHandler(asyncio.SubprocessProtocol):
+# def process_exited(self):
+# print()
+
+
+def do_job(command=None, arg=None):
+ assert(command)
+ assert(arg)
+ print('arg:', arg)
+ print('doing operation with arg')
+ #ret = subprocess.check_call([command, arg])
+ loop.suprocess_exec([command, arg],
+ stdin=subprocess.DEVNULL,
+ stdout=sys.stdout,
+ stderr=sys.stderr)
+ print('ret:', ret)
+ return ret == 0
+
+def read_next_job_arg():
+ with open(QUEUE_FILE, 'r') as f:
+ line = f.readline()
+ return line.strip()
+
+def pop_job_arg():
+ queue = QUEUE_FILE
+ queue_tmp = queue + '.tmp'
+ linecount = 0
+ with open(queue, 'r') as fi, open(queue_tmp, 'w') as fo:
+ for line in fi:
+ linecount += 1
+ if linecount == 1:
+ continue
+ fo.write(line)
+ os.rename(queue_tmp, queue)
+
+def check_queue():
+ #loop = asyncio.get_event_loop()
+ #loop.run_forever()
+
+
+#with open('queue.txt', 'w') as f:
+# fcntl.lockf(f, fcntl.LOCK_EX)
+# time.sleep(9999)
+
+#while True:
+# job_arg = read_next_job_arg()
+# if do_job(command=COMMAND, arg=job_arg):
+# pop_job_arg()
+
+#loop = asyncio.get_event_loop()
+loop.run_forever()