From 331903b74b1dd5a3ff67e69b9391b89a0ce5a52c Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 26 Jan 2017 17:05:21 +0100 Subject: [PATCH] ttm: Allow to run in daemon mode without stdin attached When running as a systemd daemon, it is useless to wait for user input to possible trigger an earlier re-run. Interaction is not possible. Additionally, there is no stdin assigned to the process when running as a systemd daemon, which results in raw_input() failing with EOFError --- totest-manager.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/totest-manager.py b/totest-manager.py index 034b279c..5a501df3 100755 --- a/totest-manager.py +++ b/totest-manager.py @@ -16,6 +16,7 @@ import sys import urllib2 import logging import signal +import time from xml.etree import cElementTree as ET @@ -600,15 +601,19 @@ class CommandlineInterface(cmdln.Cmdln): logger.error(e) if opts.interval: - logger.info("sleeping %d minutes. Press enter to check now ..."%opts.interval) - signal.alarm(opts.interval*60) - try: - raw_input() - except ExTimeout: - pass - signal.alarm(0) - logger.info("recheck at %s"%datetime.datetime.now().isoformat()) - continue + if os.isatty(0): + logger.info("sleeping %d minutes. Press enter to check now ..."%opts.interval) + signal.alarm(opts.interval*60) + try: + raw_input() + except ExTimeout: + pass + signal.alarm(0) + logger.info("recheck at %s"%datetime.datetime.now().isoformat()) + continue + else: + logger.info("sleeping %d minutes."%opts.interval) + time.sleep(opts.interval*60) break def do_release(self, subcmd, opts, project = 'Factory'):