summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornix@nixweb.com <nix@nixweb.com@5914aa95-5b3a-0410-a3b5-7b719e7fe9b2>2009-08-18 00:59:17 +0000
committernix@nixweb.com <nix@nixweb.com@5914aa95-5b3a-0410-a3b5-7b719e7fe9b2>2009-08-18 00:59:17 +0000
commita601573915db159ee27a70446600f59b6de9cdbe (patch)
tree61383f0d0edfb6d5a5a80ada4524d526e849e22e
parentc5fbf7e5494b9c1260ae83acc2cf3164dc6972ba (diff)
make "fcl ls -lrt" work
git-svn-id: http://freebase-python.googlecode.com/svn/trunk@211 5914aa95-5b3a-0410-a3b5-7b719e7fe9b2
-rw-r--r--freebase/fcl/cmdutil.py2
-rwxr-xr-xfreebase/fcl/commands.py32
2 files changed, 23 insertions, 11 deletions
diff --git a/freebase/fcl/cmdutil.py b/freebase/fcl/cmdutil.py
index 4b6f0dc..f2db878 100644
--- a/freebase/fcl/cmdutil.py
+++ b/freebase/fcl/cmdutil.py
@@ -42,7 +42,7 @@ class CmdException(Exception):
# decorator for adding subcommand option parsers
def option(argname, *args, **kws):
- kws['dest'] = 'long'
+ kws['dest'] = argname
def decorate(f):
oparser = getattr(f, 'oparser', None)
if oparser is None:
diff --git a/freebase/fcl/commands.py b/freebase/fcl/commands.py
index 1ecfb74..bb31d19 100755
--- a/freebase/fcl/commands.py
+++ b/freebase/fcl/commands.py
@@ -126,29 +126,37 @@ def old_cmd_pwid(fb):
@option('long', '-l', default=False, action='store_true', help='show time and permission')
-def cmd_ls(fb, path=None, long=False):
+@option('timesort', '-t', default=False, action='store_true', help='sort by time')
+@option('revsort', '-r', default=False, action='store_true', help='reverse sort order')
+def cmd_ls(fb, path=None, long=False, timesort=False, revsort=False):
"""list the keys in a namespace
%prog ls [id]
"""
path = fb.absid(path)
# ignore trailing /
- path = re.sub('/$', '', path)
+ if len(path) > 1:
+ path = re.sub('/$', '', path)
kq = {
'value': None,
'namespace': {
- 'id': None,
- 'type': []
+ 'id': None
},
'sort': 'value',
'optional':True
- }
+ }
+
+ if long or timesort:
+ kq['link'] = {
+ 'timestamp': None,
+ 'creator': None
+ }
+ if timesort:
+ kq['sort'] = 'link.timestamp'
- if long:
- kq['namespace']['permission'] = None
- kq['namespace']['creator'] = None
-
+ if revsort:
+ kq['sort'] = '-' + kq['sort']
q = {'id': path,
'/type/namespace/keys': [kq]
@@ -162,7 +170,10 @@ def cmd_ls(fb, path=None, long=False):
for mk in r['/type/namespace/keys']:
if (long):
- out(mk.value, mk.namespace.permission, mk.namespace.creator)
+ # trim off the /user/
+ creator = re.sub('^/user/', '', mk.link.creator)
+ timestamp = mk.link.timestamp
+ out(mk.value, creator, timestamp)
else:
out(mk.value)
@@ -174,6 +185,7 @@ def cmd_ls(fb, path=None, long=False):
print mk.value, mk.namespace.id+suffix
+
def cmd_mkdir(fb, path):
"""create a new freebase namespace
%prog mkdir id