2021-10-10 20:18:14 +00:00
|
|
|
import sys,os,shutil
|
2021-10-03 17:40:02 +00:00
|
|
|
|
2022-02-03 20:40:41 +00:00
|
|
|
def get_overlay_dir(repo_root):
|
|
|
|
|
return os.path.join(repo_root,'test','overlay','tree')
|
|
|
|
|
|
2021-10-05 11:57:34 +00:00
|
|
|
def overlay_setup(repo_root):
|
2021-10-03 17:40:02 +00:00
|
|
|
|
|
|
|
|
def process_srcdir(d):
|
2022-02-06 13:28:45 +00:00
|
|
|
relpath = d.split('.')
|
|
|
|
|
srcdir = os.path.join(repo_root,*relpath)
|
|
|
|
|
destdir = os.path.join(overlay_dir,*relpath)
|
|
|
|
|
fakemod_dir = os.path.join(fakemod_root,*(relpath[1:]))
|
2021-10-03 17:40:02 +00:00
|
|
|
os.makedirs(destdir)
|
|
|
|
|
for fn in os.listdir(srcdir):
|
|
|
|
|
if (
|
|
|
|
|
fn.endswith('.py') or
|
|
|
|
|
d == 'mmgen.data' or
|
2022-10-05 19:22:42 +00:00
|
|
|
d == 'mmgen.proto.secp256k1' and fn.startswith('secp256k1')
|
2021-10-03 17:40:02 +00:00
|
|
|
):
|
2022-02-06 13:28:45 +00:00
|
|
|
if os.path.exists(os.path.join(fakemod_dir,fn)):
|
2021-10-10 20:18:14 +00:00
|
|
|
make_link(
|
2021-10-03 17:40:02 +00:00
|
|
|
os.path.join(fakemod_dir,fn),
|
|
|
|
|
os.path.join(destdir,fn) )
|
2021-10-13 20:44:43 +00:00
|
|
|
# link_fn = fn.removesuffix('.py') + '_orig.py' # Python 3.9
|
|
|
|
|
link_fn = fn[:-3] + '_orig.py'
|
2021-10-03 17:40:02 +00:00
|
|
|
else:
|
|
|
|
|
link_fn = fn
|
2021-10-10 20:18:14 +00:00
|
|
|
make_link(
|
2021-10-03 17:40:02 +00:00
|
|
|
os.path.join(srcdir,fn),
|
|
|
|
|
os.path.join(destdir,link_fn) )
|
|
|
|
|
|
2022-02-03 20:40:41 +00:00
|
|
|
overlay_dir = get_overlay_dir(repo_root)
|
2021-10-10 20:18:14 +00:00
|
|
|
|
2021-10-03 17:40:02 +00:00
|
|
|
if not os.path.exists(os.path.join(overlay_dir,'mmgen','main.py')):
|
2022-06-11 16:11:01 +00:00
|
|
|
fakemod_root = os.path.join(repo_root,'test','overlay','fakemods')
|
|
|
|
|
make_link = os.symlink if sys.platform == 'linux' else shutil.copy2
|
2021-10-10 20:18:14 +00:00
|
|
|
sys.stderr.write('Setting up overlay tree\n')
|
2021-10-13 20:44:43 +00:00
|
|
|
shutil.rmtree(overlay_dir,ignore_errors=True)
|
2021-10-03 17:40:02 +00:00
|
|
|
for d in (
|
|
|
|
|
'mmgen',
|
2022-02-10 12:51:43 +00:00
|
|
|
'mmgen.contrib',
|
2022-02-03 20:40:42 +00:00
|
|
|
'mmgen.data',
|
|
|
|
|
'mmgen.proto',
|
2022-10-03 09:59:59 +00:00
|
|
|
'mmgen.proto.bch',
|
|
|
|
|
'mmgen.proto.btc',
|
2022-10-03 10:00:00 +00:00
|
|
|
'mmgen.proto.btc.tx',
|
|
|
|
|
'mmgen.proto.btc.tw',
|
2022-10-03 09:59:59 +00:00
|
|
|
'mmgen.proto.etc',
|
|
|
|
|
'mmgen.proto.eth',
|
2022-10-03 10:00:00 +00:00
|
|
|
'mmgen.proto.eth.pyethereum',
|
|
|
|
|
'mmgen.proto.eth.rlp',
|
|
|
|
|
'mmgen.proto.eth.rlp.sedes',
|
|
|
|
|
'mmgen.proto.eth.tx',
|
|
|
|
|
'mmgen.proto.eth.tw',
|
2022-10-03 09:59:59 +00:00
|
|
|
'mmgen.proto.ltc',
|
2022-10-04 13:08:54 +00:00
|
|
|
'mmgen.proto.secp256k1',
|
2022-10-03 09:59:59 +00:00
|
|
|
'mmgen.proto.xmr',
|
|
|
|
|
'mmgen.proto.zec',
|
2022-02-03 20:40:42 +00:00
|
|
|
'mmgen.share',
|
2022-02-03 20:40:43 +00:00
|
|
|
'mmgen.tool',
|
2022-02-08 13:03:32 +00:00
|
|
|
'mmgen.tx',
|
2022-02-10 12:51:41 +00:00
|
|
|
'mmgen.tw',
|
2022-02-10 12:51:42 +00:00
|
|
|
'mmgen.wallet',
|
|
|
|
|
'mmgen.wordlist' ):
|
2021-10-03 17:40:02 +00:00
|
|
|
process_srcdir(d)
|
|
|
|
|
|
|
|
|
|
return overlay_dir
|