diff --git a/cheat b/cheat index 553ae65..a41c375 100755 --- a/cheat +++ b/cheat @@ -4,43 +4,55 @@ import sys import cheatsheets def cheat_directories(): - default = [ default_dir for default_dir in [os.path.expanduser('~/.cheat'), cheatsheets.cheat_dir] if os.path.isdir(default_dir) ] + default = [ default_dir for default_dir in [os.path.expanduser('~/.cheat'), + cheatsheets.cheat_dir] if os.path.isdir(default_dir) ] if 'CHEATPATH' in os.environ and os.environ['CHEATPATH']: - return [ path for path in os.environ['CHEATPATH'].split(os.pathsep) if os.path.isdir(path) ] + default + return [ path for path in os.environ['CHEATPATH'].split(os.pathsep)\ + if os.path.isdir(path) ] + default else: return default def cheat_files(cheat_directories): cheats = {} for cheat_dir in reversed(cheat_directories): - cheats.update(dict([ (cheat, cheat_dir) for cheat in os.listdir(cheat_dir) if '.' not in cheat ])) + cheats.update(dict([ (cheat, cheat_dir)\ + for cheat in os.listdir(cheat_dir) if '.' not in cheat ])) return cheats -# assemble a keyphrase out of all params passed to the script -keyphrase = ' '.join(sys.argv[1:]) -cheat_dirs = cheat_directories() +def main(): + """MAIN""" -# verify that we have at least one cheat directory -if not cheat_dirs: - print >> sys.stderr, 'The ~/.cheat directory does not exist or the CHEATPATH variable is not set.' - exit() + # assemble a keyphrase out of all params passed to the script + keyphrase = ' '.join(sys.argv[1:]) + cheat_dirs = cheat_directories() -# list the files in the ~/.cheat directory -cheatsheets = cheat_files(cheat_dirs) + # verify that we have at least one cheat directory + if not cheat_dirs: + print >> sys.stderr, \ + 'The ~/.cheat dir does not exist or the CHEATPATH var is not set.' + exit() -# print help if requested -if keyphrase.lower() in ['', 'cheat', 'help', '-h', '-help', '--help']: - print "Usage: cheat [keyphrase]\n" - print "Available keyphrases:" - max_command = max([ len(x) for x in cheatsheets.keys() ]) + 3 - print '\n'.join(sorted([ '%s [%s]' % (key.ljust(max_command), value) for key, value in cheatsheets.items() ])) - exit() + # list the files in the ~/.cheat directory + cheatsheets = cheat_files(cheat_dirs) -# print the cheatsheet if it exists -if keyphrase in cheatsheets: - with open (os.path.join(cheatsheets[keyphrase], keyphrase), 'r') as cheatsheet: - print cheatsheet.read() + # print help if requested + if keyphrase.lower() in ['', 'cheat', 'help', '-h', '-help', '--help']: + print "Usage: cheat [keyphrase]\n" + print "Available keyphrases:" + max_command = max([ len(x) for x in cheatsheets.keys() ]) + 3 + print '\n'.join(sorted([ '%s [%s]' % (key.ljust(max_command), value)\ + for key, value in cheatsheets.items() ])) + exit() -# if it does not, say so -else: - print 'No cheatsheet found for %s.' % keyphrase + # print the cheatsheet if it exists + if keyphrase in cheatsheets: + with open (os.path.join(cheatsheets[keyphrase], keyphrase), 'r')\ + as cheatsheet: + print cheatsheet.read() + + # if it does not, say so + else: + print 'No cheatsheet found for %s.' % keyphrase + +if __name__ == '__main__': + main()