diff options
-rw-r--r-- | python/vyos/util.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/python/vyos/util.py b/python/vyos/util.py index 11a75c14b..531cd8182 100644 --- a/python/vyos/util.py +++ b/python/vyos/util.py @@ -70,3 +70,43 @@ def process_running(pid_file): with open(pid_file, 'r') as f: pid = f.read().strip() return psutil.pid_exists(int(pid)) + +def seconds_to_human(s, separator=""): + """ Converts number of seconds passed to a human-readable + interval such as 1w4d18h35m59s + """ + s = int(s) + + week = 60 * 60 * 24 * 7 + day = 60 * 60 * 24 + hour = 60 * 60 + + remainder = 0 + result = "" + + weeks = s // week + if weeks > 0: + result = "{0}w".format(weeks) + s = s % week + + days = s // day + if days > 0: + result = "{0}{1}{2}d".format(result, separator, days) + s = s % day + + hours = s // hour + if hours > 0: + result = "{0}{1}{2}h".format(result, separator, hours) + s = s % hour + + minutes = s // 60 + if minutes > 0: + result = "{0}{1}{2}m".format(result, separator, minutes) + s = s % 60 + print(s) + + seconds = s + if seconds > 0: + result = "{0}{1}{2}s".format(result, separator, seconds) + + return result |