mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 06:53:33 +00:00
a6baba1b07
The WIN32 CreateProcess() function does not require an .exe or .com suffix in order to spawn an executable. Now that we have Cosmo bash we're no longer so dependent on the cmd.exe prompt.
27 lines
656 B
Python
Executable file
27 lines
656 B
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import os
|
|
import re
|
|
import sys
|
|
|
|
def GetDeps(path):
|
|
def Dive(path, depth, visited):
|
|
sys.stdout.write('%s%s' % ('\t' * depth, path))
|
|
if path in visited:
|
|
sys.stdout.write(' cycle\n')
|
|
return
|
|
sys.stdout.write('\n')
|
|
with open(path) as f:
|
|
code = f.read()
|
|
for dep in re.findall(r'[.#]include "([^"]+)"', code):
|
|
Dive(dep, depth + 1, visited + [path])
|
|
Dive(path, 0, [])
|
|
sys.stdout.write('\n')
|
|
|
|
for arg in sys.argv[1:]:
|
|
if os.path.isdir(arg):
|
|
for dirpath, dirs, files in os.walk(arg):
|
|
for filepath in files:
|
|
GetDeps(os.path.join(dirpath, filepath))
|
|
else:
|
|
GetDeps(arg)
|