]> arthur.barton.de Git - bup.git/blobdiff - cmd/ls-cmd.py
ls: move opt processing to opts_from_commandline
[bup.git] / cmd / ls-cmd.py
index 44359a3ec2ba275c00240deb805b55dfa49cd37e..7dacce708a5c7ad7c4a9448800e4f2f748d659c5 100755 (executable)
@@ -1,48 +1,17 @@
-#!/usr/bin/env python
-import sys, stat
-from bup import options, git, vfs
-from bup.helpers import *
+#!/bin/sh
+"""": # -*-python-*-
+bup_python="$(dirname "$0")/bup-python" || exit $?
+exec "$bup_python" "$0" ${1+"$@"}
+"""
+# end of bup preamble
 
-def print_node(text, n):
-    prefix = ''
-    if opt.hash:
-        prefix += "%s " % n.hash.encode('hex')
-    if stat.S_ISDIR(n.mode):
-        print '%s%s/' % (prefix, text)
-    elif stat.S_ISLNK(n.mode):
-        print '%s%s@' % (prefix, text)
-    else:
-        print '%s%s' % (prefix, text)
+import sys
 
+from bup import git, ls
 
-optspec = """
-bup ls <dirs...>
---
-s,hash   show hash for each file
-a,all    show hidden files
-"""
-o = options.Options(optspec)
-(opt, flags, extra) = o.parse(sys.argv[1:])
 
 git.check_repo_or_die()
-top = vfs.RefList(None)
-
-if not extra:
-    extra = ['/']
-
-ret = 0
-for d in extra:
-    try:
-        n = top.lresolve(d)
-        if stat.S_ISDIR(n.mode):
-            for sub in n:
-                if opt.all or not sub.name.startswith('.'):
-                    print_node(sub.name, sub)
-        else:
-            if opt.all or not sub.name.startswith('.'):
-                print_node(d, n)
-    except vfs.NodeError, e:
-        log('error: %s\n' % e)
-        ret = 1
 
-sys.exit(ret)
+# Check out lib/bup/ls.py for the opt spec
+rc = ls.via_cmdline(sys.argv[1:])
+sys.exit(rc)