Added a -S option to allow for keyword searching with ignored case

This commit is contained in:
Tyler Culp 2017-06-22 14:54:52 -04:00
parent edd7b5e806
commit def6aee807
3 changed files with 14 additions and 4 deletions

View File

@ -8,6 +8,7 @@ Usage:
cheat <cheatsheet>
cheat -e <cheatsheet>
cheat -s <keyword>
cheat -S <keyword>
cheat -l
cheat -d
cheat -v
@ -17,6 +18,7 @@ Options:
-e --edit Edit cheatsheet
-l --list List cheatsheets
-s --search Search cheatsheets for <keyword>
-S --search-ignore-case Search cheatsheets for <keyword>, ignoring case
-v --version Print the version number
Examples:
@ -58,7 +60,11 @@ if __name__ == '__main__':
# search among the cheatsheets
elif options['--search']:
print(colorize(sheets.search(options['<keyword>'])))
print(colorize(sheets.search(options['<keyword>'], True)))
# search among the cheatsheets, ignoring case
elif options['--search-ignore-case']:
print(colorize(sheets.search(options['<keyword>'], False)))
# print the cheatsheet
else:

View File

@ -76,15 +76,19 @@ def list():
return sheet_list
def search(term):
def search(term, match_case):
""" Searches all cheatsheets for the specified term """
result = ''
for cheatsheet in sorted(get().items()):
match = ''
for line in open(cheatsheet[1]):
if term in line:
match += ' ' + line
if match_case:
if term in line:
match += ' ' + line
else:
if term.lower() in line.lower():
match += ' ' + line
if match != '':
result += cheatsheet[0] + ":\n" + match + "\n"

Binary file not shown.