From e72a8c8802afc7fe614ce5a1a0c91876078e0160 Mon Sep 17 00:00:00 2001 From: James Ayvaz Date: Tue, 2 Jun 2015 13:34:10 -0500 Subject: [PATCH] add support for reading arguments from config files --- README.md | 7 +++++++ pidcat.py | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8c3335b..2c1dc3b 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,13 @@ To include `adb` and other android tools on your path: Include these lines in your `.bashrc` or `.zshrc`. +CONFIGURATION +------------- + +Arguments can be specified at the command line or in one of the following config files: ~/.pidcat.conf or ./.pidcat.conf + + cat ~/.pidcat.conf + --min-level=D [1]: http://jsharkey.org/blog/2009/04/22/modifying-the-android-logcat-stream-for-full-color-debugging/ diff --git a/pidcat.py b/pidcat.py index ab6d2e0..f3382c4 100755 --- a/pidcat.py +++ b/pidcat.py @@ -22,6 +22,7 @@ # Package filtering and output improvements by Jake Wharton, http://jakewharton.com import argparse +import os import sys import re import subprocess @@ -29,9 +30,10 @@ __version__ = '2.0.0' +FROMFILE_PREFIX='@' LOG_LEVELS = 'VDIWEF' LOG_LEVELS_MAP = dict([(LOG_LEVELS[i], i) for i in range(len(LOG_LEVELS))]) -parser = argparse.ArgumentParser(description='Filter logcat by package name') +parser = argparse.ArgumentParser(description='Filter logcat by package name', fromfile_prefix_chars=FROMFILE_PREFIX) parser.add_argument('package', nargs='*', help='Application package name(s)') parser.add_argument('-w', '--tag-width', metavar='N', dest='tag_width', type=int, default=23, help='Width of log tag') parser.add_argument('-l', '--min-level', dest='min_level', type=str, choices=LOG_LEVELS+LOG_LEVELS.lower(), default='V', help='Minimum level to be displayed') @@ -46,7 +48,10 @@ parser.add_argument('-i', '--ignore-tag', dest='ignored_tag', action='append', help='Filter output by ignoring specified tag(s)') parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + __version__, help='Print the version number and exit') -args = parser.parse_args() +CONF_FILES = [ os.path.expanduser('~/.pidcat.conf'), './.pidcat.conf' ] +argv = [ '%s%s' % (FROMFILE_PREFIX, conf) for conf in CONF_FILES if os.path.isfile(conf) ] +argv.extend(sys.argv[1:]) +args = parser.parse_args(argv) min_level = LOG_LEVELS_MAP[args.min_level.upper()] package = args.package