update packages
This commit is contained in:
49
lisp/treemacs/treemacs-find-ignored-files.py
Normal file
49
lisp/treemacs/treemacs-find-ignored-files.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from subprocess import Popen, PIPE
|
||||
from os.path import exists
|
||||
import sys
|
||||
|
||||
GIT_CMD = "git clean -ndX"
|
||||
STDOUT = sys.stdout.buffer
|
||||
|
||||
def quote(string):
|
||||
return b'"' + string + b'"'
|
||||
|
||||
def process_git_output(root, proc):
|
||||
root_bytes = bytes(root, "utf-8")
|
||||
|
||||
count = 0
|
||||
for line in proc.stdout:
|
||||
# output has the form 'Would remove /a/b/c'
|
||||
# final newline and final slash also need to go
|
||||
path = line.replace(b"Would remove ", b"")[:-1]
|
||||
if path.endswith(b"/"):
|
||||
path = path[:-1]
|
||||
|
||||
ignored_file = root_bytes + b"/" + path
|
||||
ignored_file_parent = ignored_file[:ignored_file.rindex(b"/")]
|
||||
|
||||
STDOUT.write(quote(ignored_file_parent))
|
||||
STDOUT.write(quote(ignored_file))
|
||||
|
||||
# arbitrary limit of no more than 100 files
|
||||
count += 1
|
||||
if count > 100:
|
||||
break
|
||||
|
||||
def main():
|
||||
roots = sys.argv[1:]
|
||||
procs = []
|
||||
|
||||
for root in roots:
|
||||
if exists(root + "/.git"):
|
||||
proc = Popen(GIT_CMD, shell=True, stdout=PIPE, bufsize=100, cwd=root)
|
||||
procs.append((root, proc))
|
||||
|
||||
STDOUT.write(b"(")
|
||||
|
||||
for (root, proc) in procs:
|
||||
process_git_output(root, proc)
|
||||
|
||||
STDOUT.write(b")")
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user