sapling/eden/scm/tests/ls-l.py
Durham Goode b821ab3766 contentstore: make data rotatelog size configurable
Summary:
In a future diff we'll increase the size of the rotatelog temporarily
during clones. To do so we need it to be configurable.

Reviewed By: quark-zju

Differential Revision: D23089541

fbshipit-source-id: 5010e417a83a2611283322f1dbb7023f4286f503
2020-08-16 16:44:16 -07:00

50 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python
# like ls -l, but do not print date, user, or non-common mode bit, to avoid
# using globs in tests.
from __future__ import absolute_import, print_function
import os
import stat
import sys
def modestr(st):
mode = st.st_mode
result = ""
if mode & stat.S_IFDIR:
result += "d"
else:
result += "-"
for owner in ["USR", "GRP", "OTH"]:
for action in ["R", "W", "X"]:
if mode & getattr(stat, "S_I%s%s" % (action, owner)):
result += action.lower()
else:
result += "-"
return result
def sizestr(st):
if st.st_mode & stat.S_IFREG:
return "%7d" % st.st_size
else:
# do not show size for non regular files
return " " * 7
paths = sys.argv[1:]
if not paths:
paths = ["."]
for path in paths:
if os.path.isdir(path):
os.chdir(path)
for name in sorted(os.listdir(".")):
st = os.stat(name)
print("%s %s %s" % (modestr(st), sizestr(st), name))
else:
st = os.stat(path)
print("%s %s %s" % (modestr(st), sizestr(st), os.path.abspath(path)))