|
|
- 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)
|