aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-07-13 07:46:58 -0400
committerW. Trevor King <wking@drexel.edu>2009-07-13 07:46:58 -0400
commit17adbfb1c04684b986bf2c97cc4fa5197198aadc (patch)
treed588c5c801e142b59af53b9f9c15e3f9e1982737
parent197fc012f26816c233b4844c82c32f2efc449fab (diff)
downloadbugseverywhere-17adbfb1c04684b986bf2c97cc4fa5197198aadc.tar.gz
Fixed "be --dir --complete"
-rwxr-xr-xbe7
-rw-r--r--libbe/cmdutil.py8
2 files changed, 15 insertions, 0 deletions
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 '='