comparison tests/ls-l.py @ 40495:3a333a582d7b

remotefilelog: import pruned-down remotefilelog extension from hg-experimental This is remotefilelog as of my recent patches for compatibility with current tip of hg, minus support for old versions of Mercurial and some FB-specific features like their treemanifest extension and fetching linkrev data from a patched phabricator. The file extutil.py moved from hgext3rd to remotefilelog. This is not yet ready to be landed, consider it a preview for now. Planned changes include: * replace lz4 with zstd * rename some capabilities, requirements and wireproto commands to mark them as experimental * consolidate bits of shallowutil with related functions (eg readfile) I'm certainly open to other (small) changes, but my rough mission is to land this largely as-is so we can use it as a model of the functionality we need going forward for lazy-fetching of file contents from a server. # no-check-commit because of a few foo_bar functions Differential Revision: https://phab.mercurial-scm.org/D4782
author Augie Fackler <augie@google.com>
date Thu, 27 Sep 2018 13:03:19 -0400
parents
children 2372284d9457
comparison
equal deleted inserted replaced
40494:9aeb9e2d28a7 40495:3a333a582d7b
1 #!/usr/bin/env python
2
3 # like ls -l, but do not print date, user, or non-common mode bit, to avoid
4 # using globs in tests.
5 from __future__ import absolute_import, print_function
6
7 import os
8 import stat
9 import sys
10
11 def modestr(st):
12 mode = st.st_mode
13 result = ''
14 if mode & stat.S_IFDIR:
15 result += 'd'
16 else:
17 result += '-'
18 for owner in ['USR', 'GRP', 'OTH']:
19 for action in ['R', 'W', 'X']:
20 if mode & getattr(stat, 'S_I%s%s' % (action, owner)):
21 result += action.lower()
22 else:
23 result += '-'
24 return result
25
26 def sizestr(st):
27 if st.st_mode & stat.S_IFREG:
28 return '%7d' % st.st_size
29 else:
30 # do not show size for non regular files
31 return ' ' * 7
32
33 os.chdir((sys.argv[1:] + ['.'])[0])
34
35 for name in sorted(os.listdir('.')):
36 st = os.stat(name)
37 print('%s %s %s' % (modestr(st), sizestr(st), name))