equal
deleted
inserted
replaced
|
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)) |