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