summaryrefslogtreecommitdiff
path: root/lsbin.py
blob: e4bd36cb2187f66860ae82d9061acfe0aede3509 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python3

import avfs
import os, sys

# https://stackoverflow.com/questions/898669/how-can-i-detect-if-a-file-is-binary-non-text-in-python
textchars = bytearray({7,8,9,10,12,13,27} | set(range(0x20, 0x100)) - {0x7f})
def is_binary(fname):
	head = avfs.open(fname, 'rb').read(1024)
	return bool(head.translate(None, textchars))

if __name__ == "__main__":
	for fname in avfs.find(os.fsencode(sys.argv[1]), {b'.git'}):
		try:
			if is_binary(fname):
				print(fname.decode('utf-8', 'replace'))
		except:
			pass