1#!/usr/bin/env python 2 3# Copyright (C) 2018-2020 Free Software Foundation, Inc. 4# 5# This file is part of GDB. 6# 7# This program is free software; you can redistribute it and/or modify 8# it under the terms of the GNU General Public License as published by 9# the Free Software Foundation; either version 3 of the License, or 10# (at your option) any later version. 11# 12# This program is distributed in the hope that it will be useful, 13# but WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15# GNU General Public License for more details. 16# 17# You should have received a copy of the GNU General Public License 18# along with this program. If not, see <http://www.gnu.org/licenses/>. 19 20# This is a simple program that can be used to print timestamps on 21# standard output. The inspiration for it was ts(1) 22# (<https://joeyh.name/code/moreutils/>). We have our own version 23# because unfortunately ts(1) is or may not be available on all 24# systems that GDB supports. 25# 26# The usage is simple: 27# 28# #> some_command | print-ts.py [FORMAT] 29# 30# FORMAT must be a string compatible with "strftime". If nothing is 31# provided, we choose a reasonable format. 32 33import fileinput 34import datetime 35import sys 36import os 37 38if len(sys.argv) > 1: 39 fmt = sys.argv[1] 40else: 41 fmt = '[%b %d %H:%M:%S]' 42 43mypid = os.getpid() 44 45for line in fileinput.input('-'): 46 sys.stdout.write("{} [{}] {}".format(datetime.datetime.now().strftime(fmt), 47 mypid, line)) 48 sys.stdout.flush() 49