import os
|
|
import shutil
|
|
|
|
def toFileList(text):
|
|
lines = text.splitlines()
|
|
files = []
|
|
stack = []
|
|
def push(val):
|
|
pre = ''
|
|
if len(stack) > 0:
|
|
pre = stack[-1]
|
|
stack.append(pre + val)
|
|
def pop():
|
|
return stack.pop()
|
|
def replace(val):
|
|
val2 = pop()
|
|
push(val)
|
|
return val2
|
|
|
|
for line in lines:
|
|
spl = line.split('"');
|
|
spath = spl[-1]
|
|
semis = len(spl[:-1])
|
|
|
|
if spath.startswith('::'):
|
|
spl = spath.split(' ')
|
|
cmd = spl[0][2:]
|
|
if cmd == 'from': # basically just import
|
|
content = ''
|
|
with open(' '.join(spl[1:]),'r') as f:
|
|
content = f.read()
|
|
spath = content
|
|
elif cmd == 'prompt':
|
|
spath = input(' '.join(spl[1:]))
|
|
else:
|
|
spath = ''
|
|
print("No such command", cmd)
|
|
|
|
if semis > (len(stack)-1):
|
|
push(spath)
|
|
elif semis == (len(stack)-1):
|
|
files.append(replace(spath))
|
|
elif semis < (len(stack)-1):
|
|
files.append(pop())
|
|
while semis < (len(stack)):
|
|
pop()
|
|
push(spath)
|
|
files.append(pop())
|
|
return files
|
|
|
|
if __name__ == '__main__':
|
|
file = ''
|
|
with open("refs.txt","r") as f:
|
|
file = f.read()
|
|
|
|
refs = toFileList(file)
|
|
|
|
tgtDir = "target/"
|
|
shutil.rmtree(tgtDir, ignore_errors=True)
|
|
if not os.path.exists(tgtDir):
|
|
os.makedirs(tgtDir)
|
|
|
|
for filename in refs:
|
|
if (os.path.isfile(filename)):
|
|
print("Copying",filename)
|
|
shutil.copy(filename, tgtDir)
|