summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Abramowitz <marc@marc-abramowitz.com>2014-12-23 14:58:13 -0800
committerMarc Abramowitz <marc@marc-abramowitz.com>2014-12-23 14:58:13 -0800
commit1264707de3f9fa2d15943da3bf321b1304556aa3 (patch)
tree920af15f43512b7254be54bce16f6970f86fe736
parent228a5e5b3806c07c4d568ec491c4f83be5facbb1 (diff)
downloadpyramid-1264707de3f9fa2d15943da3bf321b1304556aa3.tar.gz
pyramid-1264707de3f9fa2d15943da3bf321b1304556aa3.tar.bz2
pyramid-1264707de3f9fa2d15943da3bf321b1304556aa3.zip
Add a --glob option to limit output
E.g.: $ proutes development.ini --glob='user*' Name Pattern View Method ---- ------- ---- ------ user /profilesvc/v1/user/{user_id} pyramid.config.views.<pyramid.config.views.MultiView object at 0x106f72bd0> * user /profilesvc/v1/user/{user_id} cornice.service.wrapper GET,HEAD
-rw-r--r--pyramid/scripts/proutes.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/pyramid/scripts/proutes.py b/pyramid/scripts/proutes.py
index 5d860b47d..fce90c0c1 100644
--- a/pyramid/scripts/proutes.py
+++ b/pyramid/scripts/proutes.py
@@ -1,3 +1,4 @@
+import fnmatch
import optparse
import sys
import textwrap
@@ -234,6 +235,9 @@ class PRoutesCommand(object):
usage,
description=textwrap.dedent(description)
)
+ parser.add_option('-g', '--glob',
+ action='store', type='string', dest='glob',
+ default='', help='Display routes matching glob pattern')
def __init__(self, argv, quiet=False):
self.options, self.args = self.parser.parse_args(argv[1:])
@@ -280,6 +284,12 @@ class PRoutesCommand(object):
route_data = get_route_data(route, registry)
for name, pattern, view, method in route_data:
+ if self.options.glob:
+ match = (fnmatch.fnmatch(name, self.options.glob) or
+ fnmatch.fnmatch(pattern, self.options.glob))
+ if not match:
+ continue
+
if len(name) > max_name:
max_name = len(name)