From 17adbfb1c04684b986bf2c97cc4fa5197198aadc Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 13 Jul 2009 07:46:58 -0400 Subject: Fixed "be --dir --complete" --- be | 7 +++++++ libbe/cmdutil.py | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/be b/be index 81d0787..657f968 100755 --- a/be +++ b/be @@ -37,6 +37,13 @@ parser.add_option("-d", "--dir", dest="dir", metavar="DIR", try: options,args = parser.parse_args() + for option,value in cmdutil.option_value_pairs(options, parser): + if value == "--complete": + if option == "dir": + if len(args) == 0: + args = ["."] + paths = cmdutil.complete_path(args[0]) + raise cmdutil.GetCompletions(paths) except cmdutil.GetHelp: print cmdutil.help(parser=parser) sys.exit(0) diff --git a/libbe/cmdutil.py b/libbe/cmdutil.py index a91b1c7..7589241 100644 --- a/libbe/cmdutil.py +++ b/libbe/cmdutil.py @@ -15,6 +15,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +import glob import optparse import os from textwrap import TextWrapper @@ -187,6 +188,13 @@ def default_complete(options, args, parser, bugid_args={}): raise GetCompletions(bugshortnames) raise GetCompletions() +def complete_path(path): + """List possible path completions for path.""" + comps = glob.glob(path+"*") + glob.glob(path+"/*") + if len(comps) == 1 and os.path.isdir(comps[0]): + comps.extend(glob.glob(comps[0]+"/*")) + return comps + def underlined(instring): """Produces a version of a string that is underlined with '=' -- cgit